数値の配列と範囲の配列をとるこの関数があります。範囲は数値の配列のインデックスを示します。各範囲の合計について、私は最大値を返すことになっています。私は解決策を持っていますが、それをより迅速に処理するために最適化したいと考えています。ここに私の現在のソリューションは次のようになります。それは、最適化する方法を説明し、任意の答えがいただければ幸いです最大値アルゴリズムを最適化する方法
arr = [1,-2,3,4,-5,-4,3,2,1]
range = [[1,3],[0,4],[6,8]]
:
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)
}
そして、ここでは、関数に渡される引数は、いくつかのサンプルです!
'.forEach()'ループを 'for'ループに置き換えると、通常は処理が高速化されます。 (パフォーマンスはさておき、 '.forEach()'を 'const sums = range.map(...)'に置き換え、 '.push()を呼び出すのではなく' 'return sum' sum) ') – nnnnnn
最適化といえば、実行時間について話していますか? – dawit