选择题出的较有难度,只能凭感觉走了。。
两个算法一个easy,一个middle,感觉是这几次笔试最简单的了,本来还想着字节笔试会出很难的算法许愿进面
python,供借鉴:
第一题:
n = int(input()) nList = [int(i) for i in input().split()] temp = 0 obj = {} for i in range(n): if nList[i] in obj: temp = max(temp, i - obj[nList[i]][0] - 1) obj[nList[i]].append(i) else: obj[nList[i]] = [i] print(temp)
第二题:
t = int(input()) for _ in range(t): n, k , a1, a2, a3 = map(int, input().split()) a = [a1, a2, a3] a.sort() if k * 3 > n: print(-1) else: b1, b2, b3 = a[1]-a[0], a[2]-a[1], n-a[2]+a[0] b = [b1, b2, b3] b.sort() bi = b[:2] bi.append(k) bi.sort() if bi.index(k) == 0: print(0) elif bi.index(k) == 2: print(2 * k - b[0] - b[1]) else: print(k-b[0])#我的求职记录#