思路
- 排序加双指针
代码
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int cmp(const void *a,const void *b){
return *(int*)a -*(int*)b;
}
int numRescueBoats(int* people, int peopleSize, int limit){
qsort(people,peopleSize,sizeof(int),cmp);
int i = 0,j=peopleSize-1;
int count = 0;
while (i<=j)
{
if(people[i]+people[j]<=limit){
i++;
j--;
count++;
}
else if(people[j]<=limit){
j--;
count++;
}
}
return count;
}