题目解析:将2n个数,分成n组数对,求出每组数对中最小的,并将这n个最小的相加,使得sum最大
举个例子,【1,2,3,4】,如果是分成(1,2),(3,4)sum=min(1,2)+min(3,4)=4,如果是分成(1,3),(2,4)sum=1+2=3
思路:如果,将小数与大数组成一组数对,必将牺牲大数,使得加起来的和变小,所以正确的方法是,将这组数按大小排列,两两组成数对。然后奇数的数即为数对中的最小,将他们相加即可
class Solution {
public int arrayPairSum(int[] nums) {
int i=0,sum=0;
Arrays.sort(nums);
for(i=0;i<nums.length;i=i+2){
sum=sum+nums[i];
}
return sum;
}
}