【发布时间】:2020-07-28 22:38:20
【问题描述】:
假设输入数组是偶数长度,我想找出所有最近邻对之间的差异并将它们求和。
我现在有这个代码,但它只给出了一对的最小差异。 我该如何实现这一目标?所以取出已经相加的对,和其余的对一起计算。
var lowestDiff = Infinity;
arr.sort((a, b) => a - b);
for (var i = 0; i < arr.length - 1; i++) {
lowestDiff = Math.min(lowestDiff, Math.abs(arr[i] - arr[i + 1]));
}
console.log(lowestDiff);
例如,如果输入为:[6,2,3,6],则输出为:1,因为 6 对与 6,2 对与 3
所以本质上我想将一个元素与另一个最接近它们的元素配对,并获得差异。并将它们相加。
【问题讨论】:
-
由于问题不清楚,请提供更多示例。
-
假设输入总是偶数@YevgenGorbunkov
-
@saurabhsisodia 现在更清楚了吗?
-
考虑到,您说 '...所有可能的对...' 您的示例结果不应该是 13 (6-2 + 2-3 + 6-3 + 6-3 + 6-2 + 6-6) ?
-
@YevgenGorbunkov 不,因为一个元素只能在一对中 - 他最近的邻居
标签: javascript arrays sum difference