JS斐波那契数列O(n)
2024-09-20 21:09:31
function fibonacci(n) {
return fib(n)[n]
}
var fib=(function(n){
var meo=[0,1]
return function(n){
for(var i=meo.length;i<=n;i++){
meo[i]=meo[i-1]+meo[i-2]
}
return meo.slice(0,n+1)
}
})()
以上空间复杂度:o(n),时间复杂度:o(n),最快 o(1)
2.运用大数加法:
var _fib = (function (n) {
var memory = ['0', '1']; function add(a, b) {
var res = '',
c = 0;
a = a.split('');
b = b.split('');
while (a.length || b.length || c) {
c += ~~a.pop() + ~~b.pop();
res = c % 10 + res;
c = c > 9;
}
return res.replace(/^0+/, '');
} return function (n) {
for (var i = memory.length; i <= n; i++) {
memory[i] = add(memory[i - 1], memory[i - 2]);
}
//console.log(memory.length + ' numbers saved.');
return memory.slice(0, n + 1);
};
})(); var fibonacci = function (n) {
return _fib(n)[n];
}
最新文章
- Redis的介绍及使用实例.
- BZOJ3789 : 扫雪车
- JavaScript toString() 函数详解
- Linked List Cycle &;&; Linked List Cycle II
- python基本数据类型——tuple
- 51nod_1831: 小C的游戏(Bash博弈 找规律)
- tomcat加入系统服务+开机自启
- Java EE的未来
- 20181218 - PostgreSQL Auto Commit Guide(自动提交)
- firewall配置
- C# 枚举用法
- 第五篇:数据备份、pymysql模块
- 4.8cf自训
- Linux command stty
- C/C++与Java的区别
- vsCode_1.27.2
- 用Solidity在Truffle上构建一个HelloWorld智能合约
- python判断文件和文件夹是否存在、没有则创建文件夹
- flink 根据时间消费kafka
- query flot 直方图上显示对应的y值