- 解:
- 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;
- }
题目描述
示例:
解题思路:
对撞双指针
