问题描述:
Given an array of 2n integers, your task is to group these integers into n pairs of integer, say (a1, b1), (a2, b2), ..., (an, bn) which makes sum of min(ai, bi) for all i from 1 to n as large as possible.
示例:
Input: [1,4,3,2] Output: 4 Explanation: n is 2, and the maximum sum of pairs is 4.问题分析:
由题意可知,我们可以将整个数组升序排序,每两个数为一组,取其最小的那个值相加,最终得到答案。
过程详见代码:
class Solution {
public:
int arrayPairSum(vector<int>& nums) {
sort(nums.begin(),nums.end());
int res = 0;
for(int i = 0 ; i < nums.size(); i += 2)
{
res += nums[i];
}
return res;
}
};