解题思路:
将2n的数组拆分成n对,使得每对中的最小值相加值最大,实际上就是想办法让尽可能大的值作为每对的最小值,所以首先想到了将原数组从小到大排序,然后再两两组队。
class Solution {
public int arrayPairSum(int[] nums) {
Arrays.sort(nums);
int sum=0;
int len=nums.length;
if(len<3){
sum+=nums[0]<nums[1]?nums[0]:nums[1];
return sum;
}
for(int i=0;i<len;i+=2){
sum+=nums[i];
}
return sum;
}
}
上面有一个坑,就是将数组分成两种情况:一是数组长度=2,;二是数组长度大于2,需要分开考虑。