561. Array Partition I

来源:互联网 发布:怎么备份应用数据 编辑:程序博客网 时间:2024/06/06 01:11

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(int[] nums) {        if(nums==null||nums.length<=1)return 0;        Arrays.sort(nums);        int count=0;        for(int i=0;i<nums.length;i=i+2){            count=count+nums[i];        }        return count;    }}
    数组元素两两组合,计算所有组合后的两个数的最小值之和,考虑如何使得这个和最大;最简单的方式就是将数组重新排序,然后计算奇数位置的数值之和即可
原创粉丝点击