有点简单啊,完了,肯定卡专业了,笔试筛不了人了#微众##微众银行24届秋招启动##微众银行##微众银行信息集散地#update笔试结束,更新思路t1 最长不重复 N 此题最大的坑是题目暗含只能是开头那一段,不能是中间的,我一开始也做了个18%,重新审题才发现,思路简单,不放代码了t2 最少操作去重 NlogN 排序,贪心。因为只能增加,不能减少。从第二个位置开始,如果不比前面的元素大,则增加至前面的元素+1def wz2(): n = int(input()) ls = list(map(int, input().split())) ls.sort() res = 0 for i in range(1, len(ls)): if ls[i] res += ls[i - 1] + 1 - ls[i] ls[i] = ls[i - 1] + 1 print(res)t3 子数组长度为u/v的数量 此题复杂度可为 N,不需要N**2数学思想简化一波:avg(a1,a2,a3) = u/v等价于a1 * v - u + a2 * v - u + a3 *v - u = 0将原数组进行 元素*v - u 的转换,问题为求子数组和为0 的个数求数组累加和,并记录每个累加和的坐标,如1 2 3 -3的累加和为1 3 6 3累加和统计的坐标为0 [-1]1 [0]3 [1,3]6 [2]两个坐标累加和相同,则说明其中间的数组和为0,即是答案所以从 累加和list的长度中选取对应的两个坐标(即排列组合Cn 2),求得答案超字数了,代码贴评论区