diff --git a/src/main/java/leetcode/editor/cn/BoatsToSavePeople.java b/src/main/java/leetcode/editor/cn/BoatsToSavePeople.java new file mode 100644 index 0000000..064c03d --- /dev/null +++ b/src/main/java/leetcode/editor/cn/BoatsToSavePeople.java @@ -0,0 +1,68 @@ +//第 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) + +} \ No newline at end of file diff --git a/src/main/java/leetcode/editor/cn/doc/content/BoatsToSavePeople.md b/src/main/java/leetcode/editor/cn/doc/content/BoatsToSavePeople.md new file mode 100644 index 0000000..7090a97 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/doc/content/BoatsToSavePeople.md @@ -0,0 +1,35 @@ +

第 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)
+ +

提示:

+ + +
Related Topics
  • 贪心
  • 数组
  • 双指针
  • 排序

  • 👍 151
  • 👎 0
  • \ No newline at end of file