关注
分数组的用贪心,AC了,忽略我代码中用的前缀和(刚开始以为是直接切数组,所以用了个前缀和,搞错了,但是那样也过了85%,迷~) private static void run3() {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
long[] num = new long[N + 1];
long[] preSum = new long[N + 1];
preSum[0] = 0;
for (int i = 1; i <= N; ++i) {
num[i] = scanner.nextLong();
preSum[i] = preSum[i - 1] + num[i];
}
Arrays.sort(num);
for (int i = 1; i <= N; ++i)
preSum[i] = preSum[i - 1] + num[i];
long tmp1 = num[N];
long tmp2 = 0;
for (int i = N - 1; i > 0; --i) {
int t = i;
while (i > 0 && tmp1 >= tmp2) {
tmp2 += num[i];
--i;
}
while (i > 0 && tmp1 <= tmp2) {
tmp1 += num[i];
--i;
}
if (t != i)
i++;
}
System.out.println(Math.abs(tmp1 - tmp2));
// 下面的代码过了85%
// long res = Long.MAX_VALUE;
// for (int i = 1; i < N; ++i) {
// res = Math.min(res, Math.abs(preSum[N] - preSum[i] - preSum[i]));
// }
// System.out.println(res);
scanner.close();
}
查看原帖
点赞 2
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 考研对你找工作产生了哪些影响? #
13578次浏览 135人参与
# 你的房租占工资的比例是多少? #
28720次浏览 303人参与
# 聊聊这家公司值得去吗 #
253218次浏览 2330人参与
# 找实习你看重大厂光环还是业务方向 #
7497次浏览 65人参与
# 职场捅娄子大赛 #
366372次浏览 3753人参与
# 你最满意的offer薪资是哪家公司? #
26686次浏览 142人参与
# kpi面有什么特征 #
39975次浏览 324人参与
# 打杂的实习你会去吗? #
111301次浏览 967人参与
# 你有哪些缓解焦虑的方法? #
7841次浏览 262人参与
# 大家实习每天都在干啥 #
81114次浏览 500人参与
# 为了找工作你投递了多少公司? #
17018次浏览 245人参与
# 秋招前后对offer的期望对比 #
290605次浏览 2176人参与
# 机械只有读研才有出路吗? #
20212次浏览 230人参与
# 职场人,说说你的烦心事 #
9414次浏览 85人参与
# 小米求职进展汇总 #
826787次浏览 5926人参与
# 工作中哪个瞬间让你想离职 #
24351次浏览 167人参与
# 你认为哪个岗位找工作最卷 #
20246次浏览 100人参与
# 机械人晒出你的简历 #
76149次浏览 636人参与
# 实习想申请秋招offer,能不能argue薪资 #
139910次浏览 889人参与
# 职场上哪些事情令人讨厌 #
17096次浏览 87人参与