给定长度为 2n
的整数数组 nums
,你的任务是将这些数分成 n
对, 例如 (a1, b1), (a2, b2), ..., (an, bn)
,使得从 1
到 n
的 min(ai, bi)
总和最大,返回该最大总和
采用排序解决
int cmp(int *a,int *b)
{
return *a-*b;
}
int arrayPairSum(int* nums, int numsSize) {
qsort(nums,numsSize,sizeof(int),cmp);
int ans=0;
for(int i=0;i<numsSize;i+=2)
{
ans+=nums[i];
}
return ans;
}
结合使用python的切片操作能快速解决
def arrayPairSum(self, nums: List[int]) -> int:
nums.sort()
return sum(nums[::2])