# 561. 数组拆分 I
# 题目
给定长度为 2n
的数组, 你的任务是将这些数分成 n
对, 例如 (a1, b1), (a2, b2), ..., (an, bn)
,使得从 1 到 n
的 min(ai, bi)
总和最大。
例
输入: [1,4,3,2]
输出: 4
解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4).
提示:
n 是正整数,范围在 [1, 10000].
数组中的元素范围在 [-10000, 10000].
# 题解
# 排序
排序后相邻的一组是最大
/**
* @param {number[]} nums
* @return {number}
*/
var arrayPairSum = function(nums) {
nums.sort((a, b) => {
return a - b;
});
let s = 0;
for (let i = 0; i < nums.length; i = i + 2) {
s += nums[i];
}
return s;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
← 509. 斐波那契数 566. 重塑矩阵 →