美团笔试第二题怎么做的?

数组中有0,代表最大值最小值的那题
为什么看起来那么简单的题,O(n)的时间复杂度,居然会超时?

拿了250分, 我就是个250
全部评论
我用golang怎么写都超时,后面换成Python就过了
3 回复
分享
发布于 03-09 12:38 黑龙江
java我也没过,超时了,怀疑题有问题,针对java选手
3 回复
分享
发布于 03-09 12:39 河北
联易融
校招火热招聘中
官网直投
全部用long
2 回复
分享
发布于 03-09 12:19 辽宁
直接统计未知数字,o(1)完成
1 回复
分享
发布于 03-09 12:24 福建
Scanner in = new Scanner(System.in); int n = in.nextInt(); int q = in.nextInt(); long res = 0, countOfZero = 0; for (int i = 0; i < n; i++) { int num = in.nextInt(); res += num; if (num == 0) countOfZero++; } long[] minRes = new long[q]; long[] maxRes = new long[q]; for (int i = 0; i < q; i++) { minRes[i] = res + countOfZero * in.nextInt();; maxRes[i] = res + countOfZero * in.nextInt(); } for (int i = 0; i < q; i++) { System.out.printf("%d %d\n", minRes[i], maxRes[i]); } 有没有大哥帮忙看看是为什么a不了
1 回复
分享
发布于 03-09 16:26 江苏
点赞 回复
分享
发布于 03-09 12:19 广东
O(n)路过,没有超时
点赞 回复
分享
发布于 03-09 12:20 上海
先求个和记为s。然后count一下零的个数记为c,区间范围[l,r],答案就是s+c*l, s+c*r。数据大小没注意,因为用的是py
点赞 回复
分享
发布于 03-09 12:20 江苏
我也一样超时了 不知道为什么 后面改成c++过了
点赞 回复
分享
发布于 03-09 12:23 北京
全用long,多执行几次就过了😂😂
点赞 回复
分享
发布于 03-09 12:24 北京
long+sout一次,sout蛮浪费时间
点赞 回复
分享
发布于 03-09 12:31 湖南
我也是个250被自己蠢哭
点赞 回复
分享
发布于 03-09 12:33 湖北
怎么查看分数呀
点赞 回复
分享
发布于 03-09 12:36 广东
我用Python O(n)过了
点赞 回复
分享
发布于 03-09 12:55 江苏
本来我一看 10的5次,还搞了个排序,排序去掉,然后提高了点,加个 long,然后减少 O(n) 的次数就过了,还得剪枝,蚌埠,这玩意还看运气的,可能多试几次,本来90+,然后就过了
点赞 回复
分享
发布于 03-09 13:00 浙江

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务