码迷,mamicode.com
首页 > 其他好文 > 详细

Array Partition I LT561

时间:2019-05-11 09:46:34      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:bsp   order   []   pre   into   class   idea   oss   pair   

 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.

Example 1:

Input: [1,4,3,2]

Output: 4
Explanation: 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].

 Idea 1. As the sum of the array is fixed, sum = Sa + Sb = 2*Sa + Sb - Sa, to get the maximum sum of smaller group, we want to minimize the diffence of the sum of these two groups, hence to pair the numbers closest to each other in sorted order.

Time complexity: O(NlgN)

Space complexity: O(1)

 1 class Solution {
 2     public int arrayPairSum(int[] nums) {
 3         Arrays.sort(nums);
 4         int result = 0;
 5         for(int i = 0; i < nums.length; i += 2) {
 6             result += nums[i];
 7         }
 8         
 9         return result;
10     }
11 }

 

Array Partition I LT561

标签:bsp   order   []   pre   into   class   idea   oss   pair   

原文地址:https://www.cnblogs.com/taste-it-own-it-love-it/p/10847576.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!