leet-code/src/main/java/leetcode/editor/cn/BoatsToSavePeople.java
2021-08-26 14:16:17 +08:00

68 lines
1.7 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit。
//
// 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。
//
// 返回载到每一个人所需的最小船数。(保证每个人都能被船载)。
//
//
//
// 示例 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)
//
// 提示:
//
//
// 1 <= people.length <= 50000
// 1 <= people[i] <= limit <= 30000
//
// Related Topics 贪心 数组 双指针 排序 👍 151 👎 0
package leetcode.editor.cn;
import java.util.Arrays;
//881:救生艇
class BoatsToSavePeople {
public static void main(String[] args) {
//测试代码
Solution solution = new BoatsToSavePeople().new Solution();
}
//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
public int numRescueBoats(int[] people, int limit) {
Arrays.sort(people);
int count = 0;
int start = 0;
int end = people.length - 1;
while (start < end) {
if (people[end] < limit && people[start] + people[end] <= limit) {
start++;
}
count++;
end--;
}
return start == end ? count + 1 : count;
}
}
//leetcode submit region end(Prohibit modification and deletion)
}