题目描述
image.png
示例:
image.png
解题思路:
对撞双指针

解:

public int numRescueBoats(int[] people, int limit) {//用对撞双指针算法

if(people==null || people.length==0){

return 0;

}

Arrays.sort(people);

int i=0;

int j=people.length-1;

int res=0; //res为承载所有人的最小船数

while(i<=j){

if(people[i]+people[j]<=limit){//i+j<=limit,说明i和j当前指的两个人可以乘一个小船走

i++;

}

j—; //不管i能不能走,每一局里j肯定能走

res++; //每一次进入while循环就代表有只船要走,所以res加1

}

return res;

}