难度简单
给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从 1 到 n 的 min(ai, bi) 总和最大。
返回该 最大总和
思路:
求取成对数据中的较小数据的最大总和:需要将最大的数据和第二大的数据分为一组。
将数组排序后,隔数抽取即可满足上述条件。
int arrayPairSum(vector<int>& nums) {
sort(nums.begin(),nums.end()); // 从小到大排列
int ans=0,len=nums.size();
for(int i=0;i<len;i+=2){
ans+=nums[i];
}
return ans;
}
这是一个关于数组处理的算法问题,目标是将数组分成对,使得每对中的较小值之和最大。解决方案是首先对数组进行升序排序,然后依次选取排序后的偶数下标元素相加,得到的最大总和即为答案。
&spm=1001.2101.3001.5002&articleId=114041037&d=1&t=3&u=2172f16b291345c599ea86003cbf1907)
711

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



