首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
课程
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
haostart
中国科学技术大学 计算机类
发布于安徽
关注
已关注
取消关注
@Locam:
题解 | #平均数为k的最长连续子数组#
前缀和+哈希表思路:将输入数组中的元素减去k可将题目转化为“和为0的最长连续子数组”。进一步,为省去重复计算,使用前缀和处理数组。使用哈希表记录前缀和数组中每个值第一次出现的位置,遍历数组找到相同的值便计算距离并更新最大值即可。上述前缀和数组可优化为一个变量。python参考代码:import sysfrom itertools import *a = []for line in sys.stdin: a += line.split()a = list(map(int, a))n, k = a[0], a[1]a = a[2:]for i in range(n): a[i] -= ka = list(accumulate(a, initial = 0))s = {}ans = -1for i, v in enumerate(a): if v not in s: s[v] = i else: ans = max(ans, i - s[v])print(ans)Java参考代码:import java.util.*;// 注意类名必须为 Main, 不要有任何 package xxx 信息public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(), k = in.nextInt(); long[] nums = new long[n + 1]; int i = 0, ans = -1; Map<Long, Integer> map = new HashMap<>(); map.put(0L, 0); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextInt()) { // 注意 while 处理多个 case nums[++i] += in.nextInt() - k + nums[i - 1]; if(!map.containsKey(nums[i])) map.put(nums[i], i); else ans = Math.max(ans, i - map.get(nums[i])); } System.out.println(ans); }}Java前缀和优化:import java.util.*;// 注意类名必须为 Main, 不要有任何 package xxx 信息public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(), k = in.nextInt(); long s = 0; int ans = -1; Map<Long, Integer> map = new HashMap<>(); map.put(0L, 0); // 注意 hasNext 和 hasNextLine 的区别 for (int i = 1; i <= n; i++) { // 注意 while 处理多个 case s += in.nextInt() - k; if(!map.containsKey(s)) map.put(s, i); else ans = Math.max(ans, i - map.get(s)); } System.out.println(ans); }}
点赞 2
评论 1
全部评论
推荐
最新
楼层
国泰君安
校招火热招聘中
官网直投
相关推荐
在看数据的回宇同桌很勇敢
06-11 16:13
福建师范大学 戏剧与影视学类
阿里淘天集团用户运营面经
20分钟的hr电话面,时间短问题多,很紧凑1.自我介绍 2.深挖简历,分享一个实习中遇到的挑战 3.对服装行业的看法4.为什么没投阿里国际部 5.为什么第一份实习选择去3606.觉得自己是个自信的人吗 7.说自己一个缺点
查看7道真题和解析
点赞
评论
收藏
分享
kun1224
06-09 19:49
东北大学 计算机类
大龄应届生何去何从
背景农村出来的自己眼界十分狭窄,年少的自己不知道世界如何运行,进入大学后没有了目标,不知道如何努力,也放纵了自己,蹉跎了大好岁月后面幡然醒悟,也找到了一点小目标,学习编程,再后来觉得需要提升自己的学历,经过边工作边考研,到辞职全职考研,考上了一所末流985最近投了一些大厂的暑期实习,简历也都因为年龄原因被刷,安慰自己这都很正常,继续向前走就行了,但后面中国银行的暑期实习简历也被刷了,就有点绷不住了此刻深感人生之艰难,就像那不息之长河,不求有东去大海之志,但求能做自己喜欢的事情,亦是不易人生行至此阶段,仍然不知该如何向前走,遂在此发帖,请各位交流指点。现状教育背景:双非本985硕年龄:1993....
鼠鼠酱:
技术基本不会考虑你了,本科不行,年龄偏大加班的话,你也吃不消,肯定更倾向于要年轻的牛马,去试试运维或者产品吧,别死磕技术了
牛客帮帮团来啦!有问必答
牛客在线求职答疑中心
点赞
评论
收藏
分享
爱敲代码的小刘
05-29 20:18
重庆大学城市科技学院 计算机类
求求🥺大佬看看简历,需要哪里改的
点赞
评论
收藏
分享
拒绝无效加班的傻狍子很乐观
04-18 16:36
华南理工大学 计算机类
哥们投了一个月一个面都没有😭
是不是简历有问题啊,985也这样真是自己太菜了吗😭
点赞
评论
收藏
分享
wistain
06-11 12:10
神州信息_Java开发(准入职员工)
神州信息面试
职位:java后端时间:20min自我介绍项目角色?主要实现了哪些模块?项目怎么实现登录信息缓存?redis如何实现排序?介绍zset的原生语法redis的集群模式和持久化方式?分页如何实现?如何优化?HashMap底层实现?数据库的索引底层原理?红黑树和平衡二叉树的区别?权限控制如何实现?怎么使用反射?消息队列kafka的使用场景?kafka部署?大数据项目实现?Spark+kafka反问
查看16道真题和解析
点赞
评论
收藏
分享
点赞
收藏
评论
分享
回复帖子
提到的真题
返回内容
全站热榜
1
...
5000字说透简历和面试核心要点
2.1W
2
...
手上只有1个看不上的实习offer要不要去?
5428
3
...
你怎么看今年的秋招?预测一波
5297
4
...
6.13校招&实习招聘信息汇总
5166
5
...
除了互联网,还能关注哪些公司
5056
6
...
关于实习的转正、边秋招、没实习的相关问题
3998
7
...
oppo VS 京东
2479
8
...
华为许愿
2426
9
...
好未来面试记录
2261
10
...
重庆移动实习
1903
正在热议
#
牛客帮帮团来啦!有问必答
#
1327285次浏览
18669人参与
#
非技术岗薪资爆料
#
53259次浏览
730人参与
#
OPPO开奖
#
59006次浏览
852人参与
#
和牛牛一起刷题打卡
#
44591次浏览
3574人参与
#
写简历别走弯路
#
360129次浏览
4535人参与
#
我发现了面试通关密码
#
409239次浏览
7308人参与
#
极具前瞻性,现代汽车编程题
#
9423次浏览
188人参与
#
产品每日一题
#
1654次浏览
93人参与
#
来聊聊你目前的求职进展
#
229790次浏览
2905人参与
#
华子oc时间线
#
11181次浏览
60人参与
#
投递实习岗位前的准备
#
753351次浏览
13145人参与
#
如果可以选,你最想从事什么工作
#
219731次浏览
3401人参与
#
晒一晒我的offer
#
4030344次浏览
60395人参与
#
国企vs私企,你更想去?
#
34510次浏览
404人参与
#
我想象的工作vs实际工作
#
116764次浏览
1807人参与
#
软件开发2024笔面经
#
1570274次浏览
36084人参与
#
硬件兄弟们 甩出你的华为奖状
#
37885次浏览
224人参与
#
24届软开秋招面试经验大赏
#
1238783次浏览
18675人参与
#
互联网公司评价
#
105716次浏览
1371人参与
#
参加过提前批的机械人,你们还参加秋招么
#
16618次浏览
382人参与
#
百度工作体验
#
31901次浏览
315人参与
#
机械制造笔面经
#
11528次浏览
331人参与
牛客网
牛客企业服务