关注
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int count = 0;
ArrayList<Integer> list = new ArrayList<>();
// 将面值放入一个list里,数量大于1则重复,如[100, 50, 50, 10, 1]
for (int i = 0; i < n; i++) {
int key = sc.nextInt();
int value = sc.nextInt();
for (int j = 0; j < value; j++) {
list.add(key);
}
}
int str = 0, end = list.size() - 1;
// 两个指针 分别指向头部和尾部 [100, 50, 50, 10, 1]
for (int i = 0; i < end; i++) {
// 如果当前值大于工资则直接除
if (list.get(i) >= m) {
count += list.get(i) / m;
}// 如果当前值小于工资,如50 < 51,则从列表最后的
// 最小的那批面值开始相加,直到付得起工资为止。
else{
int sum = list.get(i);
while(sum < m && i < end){
sum += list.get(end);
end--;
}
if(sum >= m){
count++;
}
}
}
System.out.println(count);
}
} 求教大佬,我感觉我java的思路没问题,就是如果小于面值,就优先从小面额开始相加,但是只过了40%,😭
查看原帖
点赞 5
相关推荐
牛客热帖
更多
正在热议
更多
# 实习的你做了哪些离谱的工作 #
3751次浏览 58人参与
# 工作压力大,你会干什么? #
3330次浏览 90人参与
# MiniMax求职进展汇总 #
1414次浏览 25人参与
# 参加哪些竞赛对找工作有帮助? #
3756次浏览 72人参与
# 邪修省钱套路 #
2719次浏览 105人参与
# 我的付费上班经历 #
5815次浏览 103人参与
# 找实习记录 #
8164次浏览 147人参与
# AI让你的思考变深了还是变浅了? #
1141次浏览 36人参与
# 如果不上班,你会去做什么 #
2438次浏览 85人参与
# 为了入行xx岗,我学了__ #
1973次浏览 34人参与
# 简历第一个项目做什么 #
2044次浏览 45人参与
# 你找工作的时候用AI吗? #
167486次浏览 868人参与
# 如何排解工作中的焦虑 #
257947次浏览 2384人参与
# 毕业论文进行时 #
24891次浏览 146人参与
# 大厂面试初体验 #
86612次浏览 398人参与
# 机械人的薪资开到多少,才适合去? #
159531次浏览 560人参与
# 你们的毕业论文什么进度了 #
1236294次浏览 9925人参与
# 你觉得面试是靠实力还是靠运气 #
27569次浏览 313人参与
# 毕业旅行去哪玩儿 #
21866次浏览 148人参与
# 硬件人秋招进展 #
265622次浏览 3971人参与
# 职场新人体验 #
160811次浏览 1149人参与

