我有這個函數需要一個數組數組和一個範圍數組。範圍表示數組數組中的索引。對於每個範圍的總和,我應該返回最大的值。我有一個解決方案,但想優化它來更快處理。這是我目前的解決方案:如何優化最大值算法
function maxSum(arr,range){
const sums = []
range.forEach(element => {
let sum = 0
for(let i = element[0]; i <= element[1]; i++) {
sum += arr[i]
}
sums.push(sum)
})
return Math.max(...sums)
}
這裏是將被傳遞給函數的一些樣本參數:
arr = [1,-2,3,4,-5,-4,3,2,1]
range = [[1,3],[0,4],[6,8]]
任何答案,解釋它是如何進行優化,將不勝感激!
用'for'循環替換'.forEach()'循環通常會加快速度。 (除了性能,你可以通過用'const sums = range.map(...)'替換'.forEach()',然後使用'return sum'而不是調用'.push(總和)'。) – nnnnnn
說到優化,你說的是正確的運行時間? – dawit