有一個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我自己嘗試過。顯然它不是世界上最快的算法。 –