LeetCode 561配列分割
1777 ワード
タイトル:
長さ2 nの配列を指定すると、これらの数をn対に分けることができます.例えば、(a 1,b 1)、(a 2,b 2)、...,(an,bn)、1からnまでのmin(ai,bi)の合計が最大になります.
例1:
ヒント:
分析:
固定長2*nの配列は、必ずn個の数を見つけて答えを構成し、私たちはこのn個の数をできるだけ大きくしなければならないので、できるだけ小さい数を捨てなければならない.
だから最小の2つの数を取るたびに、小さい数を捨てて、答えを得ることができます.
JAvaコード:
長さ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));
}
}