春招第二面 乐信圣文 安卓开发
第一次面试字节草草结束,根本没到算法考察 - - 太菜了
面试官很亲切,也没为难我,纯粹我自己太菜
1. 大整数减法
没啥问题,面试官说主要是借位使用递归太消耗资源,应该使用循环
a = "10000"
b = "789"
def is_bigger(a, b):
if len(a) > len(b):
return True
elif len(a) < len(b):
return False
return a > b
def jiewei(a_list_reserve, index):
if a_list_reserve[index] > 0:
a_list_reserve[index] -= 1
print(a_list_reserve)
elif a_list_reserve[index] == 0:
a_list_reserve[index] = 9
print(a_list_reserve)
jiewei(a_list_reserve, index+1)
def big_num_sub(a, b):
if not is_bigger(a, b):
raise "a <= b"
a_list = list(map(int,a))
b_list = list(map(int,b))
a_list.reverse()
b_list.reverse()
result = []
for i in range(min(len(a_list), len(b_list))):
if a_list[i] >= b_list[i]:
result.append(a_list[i] - b_list[i])
else:
jiewei(a_list, i + 1)
result.append(a_list[i] + 10 - b_list[i])
result.reverse()
return result
if __name__=="__main__":
re = big_num_sub(a, b)
print(re)
print(int(a) - int(b))
2.常规的动态规划算法考察
奈何我半年没写过动态规划了 - - ,写了个递归的,面试官同样说应该使用动态规划
count = 0
def is_next_last(m, n, i, j):
if m == i and n == j:
count += 1
elif m == i or n == j:
return
else:
is_next_last(m, n, i, j+1)
is_next_last(m, n, i+1, j)
3.计算机网络基础 TCP和UDP的区别在哪,应用场景怎么样
4.操作系统有两种线程,分别是哪两种,有什么区别
两题都非常基础,奈何本人没准备过这些。。。。
反问有什么不足
面试官推荐我刷力扣常见题目,结合AI复习 计算机网络、操作系统、计算机组成原理的 常见面试题
面试官感觉真的一点为难我的意思的没有,纯粹是我太菜了