华为OD机试 2023B卷题库疯狂收录中,刷题点这里
本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。
运送的快递放在大小不等的长方体快递盒中,为了能够装载更多的快递同时不能让货车超载,需要计算最多能装多少个快递。
注:
快递的体积不受限制,快递数最多1000个,货车载重最大50000。
第一行输入每个快递的重量
用英文逗号隔开
如5,10,2,11
第二行输入货车的载重量
如20
输出最多能装多少个快递。
能遇到这道题的,赶紧去买彩票,送分题中的送分题。
运送的快递放在大小不等的长方体快递盒中,为了能够装载更多的快递同时不能让货车超载,需要计算最多能装多少个快递
肯定是先装小的,再装第二小的,基础类推。
package com.guor.od;
import java.util.*;
public class OdTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 每个快递的重量
int[] arr = Arrays.stream(sc.nextLine().split(",")).mapToInt(Integer::parseInt).toArray();
// 货车的载重量
int capacity = sc.nextInt();
// 从小到大排序
Arrays.sort(arr);
// 货物总重量
int total = 0;
// 最多能装多少个快递
int sum = 0;
// 遍历每个快递的重量
for (int weight : arr) {
// 货物总重量 + 当前货物重量 <= 货车的载重量,继续装
if (total + weight <= capacity) {
total += weight;
sum += 1;
}
}
System.out.println(sum);
}
}
5,10,2,11
20
3
下一篇:华为OD机试 - 荒岛求生 - 栈Stack(Java 2023 B卷 100分)
本文收录于,华为OD机试(JAVA)真题(A卷+B卷)
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。