(leetcode)程式設計題(1)
阿新 • • 發佈:2018-10-31
程式設計題
給定長度為 2n 的陣列, 你的任務是將這些數分成 n 對, 例如 (a1, b1), (a2, b2), …, (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].
注意:
使得從1 到 n 的 min(ai, bi) 總和最大。
即:組合的方式有多種,但是需要找出一種方式可以使最小值的和最大。
import java. util.Arrays;
public class array{
public static void main(String[] args) {
int[] arr = {1,2,3,4};
int sum = arraySort(arr);
System.out.println(sum);
}
public static int arraySort(int []arr){
int sum = 0;
Arrays.sort(arr);
for(int i=0;i<arr.length;i+=2){
sum += Math.min(arr[i],arr[i+ 1]);
}
return sum;
}
}