更新题解了可以看看
有点简单啊,完了,肯定卡专业了,笔试筛不了人了#微众##微众银行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] <= ls[i - 1]:            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),求得答案超字数了,代码贴评论区
点赞 3
评论 14
全部评论

相关推荐

点赞 评论 收藏
分享
06-07 19:59
门头沟学院 C++
点赞 评论 收藏
分享
05-30 12:03
山西大学 C++
offer来了我跪着接:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务