561. Array Partition I

来源:互联网 发布:php服务器配置 编辑:程序博客网 时间:2024/06/05 03:50

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].

解题思路:先将该数组排序,然后取每组的最小值之和,即为所求。

class Solution {
public:
    int arrayPairSum(vector<int>& nums) {
        if (nums.size == 0)

           return 0;

        sort (nums, nums + nums.size);//排序

       int sum = 0;

       for(int i = 0; i < nums.size; i += 2){

               sum += nums[i];

         }

         return sum;

};

原创粉丝点击