关注
二分,我上来就是用二分做的,没有用遍历查询,因为我知道网易的题目复杂度卡的很严,能用O(longn)做的O(n)绝对过不了。但是第一次提交也没能AC。我就想到了累加的时候可能超过int所能表示的最大值,换成long型就A了。一下是我的代码,写的很挫,见谅! public class FengShou {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(in.hasNext()){
int n = in.nextInt();
long[] arr = new long[n];
long count = 0;
for(int i = 0; i < n; i++){
count += in.nextInt();
arr[i] = count;
}
int m = in.nextInt();
long[] queries = new long[m];
int[] res = new int[m];
for(int i = 0; i < m; i++){
queries[i] = in.nextLong();
}
for(int i = 0; i < m; i++){
if(queries[i] <= arr[n - 1])
res[i] = lower_bound(arr, 0, arr.length, queries[i]);
}
for(int i : res){
System.out.println(i + 1);
}
}
in.close();
}
public static int lower_bound(long[] arr, int begin, int end, long tag){
while(begin < end){
int mid = (begin + end) / 2;
if(arr[mid] < tag){
begin = mid + 1;
}else
end = mid;
}
return begin;
}
/*
test case:
5
2 7 3 4 9
3
1 25 11
* */
}
查看原帖
点赞 2
相关推荐
03-11 15:48
安阳学院 后端工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你的实习产出是真实的还是包装的? #
36277次浏览 434人参与
# 网申一定要掌握的小技巧 #
20473次浏览 86人参与
# 厦门银行科技岗值不值得投 #
15950次浏览 359人参与
# 一人一道大厂面试题 #
124989次浏览 1302人参与
# 学历VS实习,哪个更重要? #
2806次浏览 70人参与
# 面试紧张时你会有什么表现? #
34499次浏览 217人参与
# 你的实习什么时候入职 #
367172次浏览 2360人参与
# uu们,春招你还来吗? #
64858次浏览 785人参与
# 面试中,你被问过哪些奇葩问题? #
97120次浏览 1305人参与
# 发工资后,你做的第一件事是什么 #
99706次浏览 319人参与
# 牛油的搬砖plog #
188523次浏览 1253人参与
# 面试被问到不会的问题,你怎么应对? #
27104次浏览 687人参与
# 你都用vibe coding做过什么? #
23274次浏览 876人参与
# 90后北漂现状 #
36114次浏览 213人参与
# 工作上你捅过哪些篓子? #
68531次浏览 317人参与
# 分享一个让你热爱工作的瞬间 #
67314次浏览 500人参与
# 关于春招你都做了哪些准备? #
145042次浏览 767人参与
# 你觉得大几开始实习最合适? #
31304次浏览 332人参与
# 你见过哪些招聘隐形歧视? #
26570次浏览 217人参与
# 哔哩哔哩笔试 #
35258次浏览 143人参与
# 一人分享一道面试手撕题 #
111123次浏览 2612人参与
查看2道真题和解析