题目描述
一辆运送快递的货车,运送的快递放在大小不等的长方体快递盒中,为了能够装载更多的快递,同时不能让货车超载,需要计算最多能装多少个快递。
注:快递的体积不受限制,快递数最多1000个,货车载重最大50000
输入描述
第一行输入每个快递的重量,用英文逗号隔开,如 5,10,2,11
第二行输入货车的载重量,如 20
输出描述
输出最多能装多少个快递,如 3
说明:能装的快递重量为:2,5,10 或者 2,5,11
解题思路
- 先将数组从小到大排序。
- 创建一个变量 sum,用于存放累加值。
- 创建一个变量 count,用于记录累加的元素数量。
- 遍历排序后的数组,累加遍历值,如果累加后的值大于载重量,则退出遍历。打印 count 值。
代码实现
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String firstLine = sc.nextLine();
String[] split = firstLine.trim().split(",");
List<Integer> arr = new ArrayList<>();
for (String s : split) {
arr.add(Integer.parseInt(s));
}
int pSum = sc.nextInt();
arr.sort(null);
int sum = 0, count = 0;
for (Integer integer : arr) {
sum += integer;
if (sum > pSum) {
break;
}
count++;
}
System.out.println(count);
}
}
标签:count,运输,arr,String,sum,累加,快递
From: https://www.cnblogs.com/jacobsblog/p/18374945