leetcode講解--561. Array Partition I

題目

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

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:code

  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個數,兩兩一組,求leetcode

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

咱們對數組排序,讓小的兩個組成一對,這樣就能獲得最大結果了。it

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;
    }
}
相關文章
相關標籤/搜索