gpt4 book ai didi

javascript - "for"循环和 array.reduce 在 Javascript 中的超时/低效率错误

转载 作者:行者123 更新时间:2023-11-29 23:46:34 27 4
gpt4 key购买 nike

完成代码战挑战 (简单乐趣 #237:后缀和),当我通过所有测试时,它给我一个超时错误。挑战在于从给定的数组创建一个新数组,其中新数组的每个索引都是原始数组中相同索引到原始数组末尾的总和。

对于数组 1, 2, 3, -6, 输出应该是 0, -1, -3, -6。

b[0]= 1 + 2 + 3 - 6 = 0  
b[1]= 2 + 3 - 6 = -1
b[2]= 3 - 6 = -3
b[3]= - 6 = -6

我的代码是这样的

function suffixSums(a) {
var res=[]
for(i=0;i<a.length;i++){
var newarray=a.slice([i])
res.push(newarray.reduce(function(acc, val){ return acc + val },0))
}
return res
}

有什么线索吗?显然我还在学习,优化对我来说是一个全新的世界

最佳答案

您可以使用项目的后继并在从末尾开始迭代时添加实际值。

function suffixSums(a) {
var i = a.length - 1;
while (i--) {
a[i] += a[i + 1];
}
return a;
}

console.log(suffixSums([1, 2, 3, -6]));

关于javascript - "for"循环和 array.reduce 在 Javascript 中的超时/低效率错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43788140/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com