用 JavaScript 实现最大可能的成对和


问题

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

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

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

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

更新于: 2021 年 4 月 21 日

177 次浏览

开启你的 职业生涯

完成课程获得认证

开始
广告
© . All rights reserved.