题目描述
一辆运送快递的货车,运送的快递放在大小不等的长方体快递盒中,为了能够装载更多的快递,同时不能让货车超载,需要计算最多能装多少个快递。
注:快递的体积不受限制,快递数最多1000个,货车载重最大50000
输入描述
第一行输入每个快递的重量,用英文逗号隔开,如5,10,2,11
第二行输入货车的载重量,如20
输出描述
输出最多能装多少个快递,如3
备注
不需要考虑异常输入
用例
输入 20 5,10,2,11
输出 3
说明 货车的载重量为20,最多只能放三个快递5、10、2,因此输出3
每次选择最小的质量的快递加入 !!!!!
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] weights = Arrays.stream(sc.nextLine().split(",")).mapToInt(Integer::parseInt).toArray();
int limit = Integer.parseInt(sc.nextLine());
System.out.println(getResult(weights, limit));
}
public static int getResult(int[] weights, int limit) {
Arrays.sort(weights);
int count = 0;
int sum = 0;
for (int w : weights) {
// 每次都选择重量最小的快递加入
sum += w;
if (sum > limit) break;
count++;
}
return count;
}
}