561. Array Partition I

来源:互联网 发布:电子宠物机多少钱知乎 编辑:程序博客网 时间:2024/06/01 09:27
Given an array of 2n integers, your task is to group these integers inton 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.

Example 1:

Input: [1,4,3,2]Output: 4Explanation: n is 2, and the maximum sum of pairs is 4 = min(1, 2) + min(3, 4).

Note:

  1. n is a positive integer, which is in the range of [1, 10000].
  2. All the integers in the array will be in the range of [-10000, 10000].
分析:
       题目比较简单,对2n个数进行两两分组,取出每组中的最小数要求组成的和最大。这里先对数组进行
从小到大排列,然后取出数组中的奇数项进行相加即可得到答案。

class Solution {
public:
    int arrayPairSum(vector<int>& nums)
    {
        int sum=0;
        sort(nums.begin(),nums.end());
        for(int i=0;i<nums.size();i=i+2)
            sum+=nums[i];
        return sum;
    }
};

原创粉丝点击