有一个N个整数的数组。我们将从数组中取两个数字,并将这个数组分成三部分。准确地说,我们将采用索引P和Q处的元素。子阵列的索引将为[0,P-1],[P + 1,Q-1],[Q + 1,N-1]。显然,0 < P < Q < N-1,Q-P> 1.我们想找到两个数的最小和。Javascript:从数组中取两个数字并将数组分成三个子数组。找到两个数字的最小和
例如,有三种方法可以从数组中取两个数字[5,2,4,6,3,7]。
- 指数1 & 3.总和是8
- 指数1 & 4.总和是5
- 指数2 & 4.总和是7
所以最小总和为5.
我已经试过并编写了下面的函数来实现这个效果。显然它非常缓慢。但我想不出一种更快的算法。
const arrayOne = [5, 2, 4, 6, 3, 7]
console.log(arrayOne)
const breakChain = (arr) => {
let lowest = 2000000000
for (let open = 1; open < arr.length - 3; open ++) {
for (let close = open + 2; close < arr.length - 1; close ++) {
const low = arr[open] + arr[close]
if (low < lowest) {
lowest = low
}
}
}
console.log(lowest)
}
breakChain(arrayOne)
这是一个家庭作业。自己试试 – Weedoze
请显示你的尝试。 Stackoverflow不是免费的代码编写或教程服务。目标是帮助你解决**你的代码** – charlietfl
@charlietfl我自己尝试过。显然它不是世界上最快的算法。 –