给定长度为 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])
2610

被折叠的 条评论
为什么被折叠?



