题目描述:
Given an integer array nums of 2n integers, group these integers into n pairs (a1, b1), (a2, b2), ..., (an, bn) such that the sum of min(ai, bi) for all i is maximized. Return the maximized sum.
给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从 1 到 n 的 min(ai, bi) 总和最大。
返回该 最大总和 。
思路:
这是一道标准的贪心法题目。对于每个组合,大的将被舍弃,因此只需要让被舍弃的大的数字尽可能的小。我们可以先将数组排序,然后依次抽取数字即可。
题解:
class Solution {
public:
int arrayPairSum(vector<int>& nums) {
int answer=0;
sort(nums.begin(),nums.end());
for(int i=0;i<nums.size();i+=2) {
answer+=nums[i];
}
return answer;
}
};