LeetCode 561配列分割


タイトル:
長さ2 nの配列を指定すると、これらの数をn対に分けることができます.例えば、(a 1,b 1)、(a 2,b 2)、...,(an,bn)、1からnまでのmin(ai,bi)の合計が最大になります.
例1:
  : [1,4,3,2]

  : 4

  : n    2,       4 = min(1, 2) + min(3, 4).

ヒント:
n     ,    [1, 10000].
          [-10000, 10000].

分析:
固定長2*nの配列は、必ずn個の数を見つけて答えを構成し、私たちはこのn個の数をできるだけ大きくしなければならないので、できるだけ小さい数を捨てなければならない.
だから最小の2つの数を取るたびに、小さい数を捨てて、答えを得ることができます.
JAvaコード:
import java.util.Arrays;

class Solution{
    public int arrayPairSum(int[] nums){
        int ans=0;
        Arrays.sort(nums);
        for(int i=0;i2){
            ans+=nums[i];
        }
        return ans;
    }
}

public class MainClass{
    public static void main(String[] args){
        Solution solution=new Solution();
        int nums[]={1,4,3,2};
        System.out.println(solution.arrayPairSum(nums));
    }
}