前言
今天忙了一天,靠着自己本科学生工作经验还是提高了不少的工作效率,明天从早到晚都在上课,疲惫。
今天的题目还是贪心法,由于一艘船最多带两个人,所以我们采用最重的和最轻的人搭档,首先进行排序,之后用双指针,可以得到只要在左指针小于右指针时,就要增加一艘船,当最重加最轻的小于等于限制时,左指针移动,右指针无论如何都会左移。
题目
源码
class Solution {
public int numRescueBoats(int[] people, int limit) {
Arrays.sort(people);
int ans=0,i=0,j=people.length-1;
while (i<=j){
ans++;
if(people[i]+people[j]<=limit){
i++;
}
j--;
}
return ans;
}
}