1

题目

Given an array of 2n integers, your task is to group these integers into n pairs of integer, say $(a_1, b_1), (a_2, b_2), \cdots, (a_n, b_n)$ which makes sum of $min(a_i, b_i)$ 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].

题目地址

讲解

这道题对我来说难点在于看懂题,哈哈哈。题目的意思是2n个数,两两一组,求

$$ \sum_{i=0}^{n} min(a_i, b_i) $$

我们对数组排序,让小的两个组成一对,这样就能得到最大结果了。

Java代码

class Solution {
    public int arrayPairSum(int[] nums) {
        Arrays.sort(nums);
        int result=0;
        for(int i=0;i<nums.length;i+=2){
            result+=nums[i];
        }
        return result;
    }
}

liuqinh2s
42 声望13 粉丝

认真写代码,搞创作