我有这个函数需要一个数组数组和一个范围数组。范围表示数组数组中的索引。对于每个范围的总和,我应该返回最大的值。我有一个解决方案,但想优化它来更快处理。这是我目前的解决方案:如何优化最大值算法
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