int maxProductDifference(vector<int>& nums){//------- 没有负数,直接排序
int n = nums.size();sort(nums.begin(), nums.end());
int a = nums[0], b = nums[1];
int c = nums[n-2], d = nums[n-1];return c * d - a * b;}
三角形的最大周长
int largestPerimeter(vector<int>&A){sort(A.begin(),A.end());for(int i =(int)A.size()-1; i >=2;--i){if(A[i -2]+A[i -1]>A[i]){returnA[i -2]+A[i -1]+A[i];}}return0;}
数组拆分 I
public int arrayPairSum(int[] nums){
int n = nums.length;
Arrays.sort(nums);
int ans =0;for(int i =0; i < n; i +=2) ans += nums[i];return ans;}
救生艇
int numRescueBoats(vector<int>&people, int limit){
int ans =0;sort(people.begin(), people.end());
int light =0, heavy = people.size()-1;while(light <= heavy){if(people[light]+ people[heavy]> limit){--heavy;}else{++light;--heavy;}++ans;}return ans;}
摆动排序 II
voidwiggleSort(vector<int>& nums){
int length=nums.size();
int bucket[5001]={0};for(int num:nums) bucket[num]++;
int big,small;if(length&1){
big=length-2;
small=length-1;}else{
big=length-1;
small=length-2;}
int j=5000;//插入大数for(int i=1;i<=big;i+=2){while(bucket[j]==0) j--;
nums[i]=j;
bucket[j]--;}//插入小数for(int i=0;i<=small;i+=2){while(bucket[j]==0) j--;
nums[i]=j;
bucket[j]--;}}
两个数对之间的最大乘积差 int maxProductDifference(vector<int>& nums) { //------- 没有负数,直接排序 int n = nums.size(); sort(nums.begin(), nums.end()); int a = nums[0], b = nums[1]; int c = nums[n-2], d =.