File tree Expand file tree Collapse file tree 1 file changed +30
-3
lines changed Expand file tree Collapse file tree 1 file changed +30
-3
lines changed Original file line number Diff line number Diff line change 3
3
* @return {number }
4
4
*/
5
5
let fib = function ( N ) {
6
- let dp = new Array ( N + 1 ) . fill ( 0 ) ;
6
+ let dp = [ ]
7
7
8
- dp [ 0 ] = 0 ;
9
- dp [ 1 ] = 1 ;
8
+ dp [ 0 ] = 0n ;
9
+ dp [ 1 ] = 1n ;
10
10
11
11
for ( let i = 2 ; i <= N ; i ++ ) {
12
12
dp [ i ] = dp [ i - 1 ] + dp [ i - 2 ] ;
13
13
}
14
14
15
15
return dp [ N ] ;
16
16
} ;
17
+
18
+ // let fib = (function () {
19
+ // let memo = new Map();
20
+ // return function (n) {
21
+ // // 优先从记忆里取 找到就直接 return
22
+ // // 否则又要进入下面的递归逻辑 非常耗时
23
+ // let memorized = memo.get(n);
24
+ // if (memorized) {
25
+ // return memorized;
26
+ // }
27
+
28
+ // if (n == 1 || n == 2) {
29
+ // return 1;
30
+ // }
31
+
32
+ // let f1 = fib(n - 1)
33
+ // let f2 = fib(n - 2)
34
+
35
+ // // 记忆下来
36
+ // memo.set(n - 1, f1)
37
+ // memo.set(n - 2, f2)
38
+
39
+ // return f1 + f2
40
+ // };
41
+ // })();
42
+
43
+ console . log ( fib ( 10000 ) ) ;
You can’t perform that action at this time.
0 commit comments