javascript - 我在这段JS代码中使用了slice方法,我的代码很慢,有没有办法让这段代码更快?
问题描述
这是来自 Codewars 的 kata:
'如果你已经完成了 Tribonacci 序列型,你现在就会知道斐波那契先生至少有一个更大的兄弟。如果没有,请快速浏览一下以了解事情的运作方式。
好吧,是时候再扩展一下这个系列了:想想一个 Quadribonacci,从 4 个元素的签名开始,每个后面的元素都是前 4 个元素的总和,一个 Pentabonacci(好吧,Cinquebonacci 可能听起来更意大利一点,但它会听起来也很糟糕)具有5个元素的签名,每个后续元素都是前5个元素的总和,依此类推。
好吧,你猜怎么着?您必须构建一个 Xbonacci 函数,该函数采用 X 元素的签名 - 并记住每个下一个元素是最后 X 元素的总和 - 并返回如此种子序列的前 n 个元素。
这是我的解决方案:
function Xbonacci(signature,n){
let i=0;
let k = n - signature.length;
while(k--){
let sumNums = 0;
signature.slice(i , signature.length ).map((num)=>{
return sumNums += num;
})
signature.push(sumNums);
i++
}
return signature;
}
但由于优化问题,它没有通过测试。我不知道如何优化这段代码。有什么解决方案可以让这段代码更快吗?
解决方案
推荐阅读
- authentication - 使用 ADAL 请求 Office 365 Government 身份验证令牌时服务器超时
- webpack - 构建过程中的问题
- angular - 如何将离子滚动元素的片段水平居中
- c# - RabbitMQ.Client BasicPublish 在完成之前返回
- excel - 在 Excel 中将 1234 格式化为 1.2K
- wordpress - 如何为“客户”角色启用作者页面?
- javascript - React prop 类型检查,如何声明“任何组件”?
- python - 有没有办法用python制作文件接收?
- php - classes autoload doesn't work when imported from another file
- javascript - 材质ui的加载栏组件的颜色变化