本文主要是介绍Day 18:881. 救生艇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Leetcode 881. 救生艇
给定数组 people 。people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit。
每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。
返回 承载所有人所需的最小船数 。
这里有一个条件,每艘船最多同时载两人,就变简单了。我考虑了载一个最重和最轻的人,然后还可以加一个稍微轻点的的人,这里就不用考虑这种情况了。
只需要考虑最重和最轻的搭配,如果加起来超过了限制,只能最重的单独一艘船。
**完整代码 **
class Solution {public int numRescueBoats(int[] people, int limit) {int ans = 0;Arrays.sort(people);int light = 0, heavy = people.length - 1;while (light <= heavy) {if (people[light] + people[heavy] <= limit) {++light;}--heavy;++ans;}return ans;}
}
这篇关于Day 18:881. 救生艇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!