难度简单
给定长度为 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;
}