在 JavaScript 中实现最大可能的对和

问题

我们需要编写一个 JavaScript 函数,它接受一个整数数组 arr,它的长度为 2n 作为第一个也是唯一的参数。

我们函数的任务是将这些整数分组为 n 对整数,比如 (a1, b1), (a2, b2), ..., (an, bn) 这使得min(ai, bi)从 1 到 n 的所有 i 的总和为尽可能大。

例如,如果函数的输入是 -

const arr = [1, 4, 3, 2];

那么输出应该是 -

const output = 4;

输出说明

n 为 2,对的最大和为 4 = min(1, 2) + min(3, 4)。

示例

以下是代码 -

const arr = [1, 4, 3, 2];
const pairSum = (arr = []) => {
   arr.sort((a, b) => a - b)
   let sum = 0
   for (let i = 0; i < arr.length; i += 2) {
      sum += Math.min(arr[i], arr[i + 1])
   }
   return sum
}
console.log(pairSum(arr));
输出结果

以下是控制台输出 -

4