第 i 个人的体重为 people[i],每艘船可承载的最大重量为 limit。每艘船最多同时载运 2 人,且这些人的重量总和不得超过限制。返回承载每个指定人员的最少船只数量。(保证每个人都能被一艘船运载。)示例1:输入:people = [1,2], limit = 3输出:1解释:1 艘船 (1, 2)示例2:输入:people = [3,2,2,1], limit = 3输出:3解释:3 艘船 (1, 2), (2) 和 (3)示例3:输入:people = [3,5,3,4], limit = 5输出:4解释:4 艘船 (3), (3), (4), (5)我得到第二个示例的错误输出,得到输出 2 而不是 3 我的代码有什么问题我想要这样的代码
1 回答
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
class Solution {
public int numRescueBoats(int[] people, int limit) {
int count = 0;
int i;
int j = people.length - 1;
Arrays.sort(people);
for (i = 0; i < j; i++) {
if (people[i] + people[j] <= limit) {
i++;
j--;
} else {
j--;
}
count++;
}
return count;
}
}
示例 2 获取2输出3
添加回答
举报
0/150
提交
取消