File tree Expand file tree Collapse file tree 2 files changed +42
-7
lines changed Expand file tree Collapse file tree 2 files changed +42
-7
lines changed Original file line number Diff line number Diff line change 137
137
138
138
## 递归和循环
139
139
140
- - [ 斐波拉契数列] ( /算法分类/递归和循环/斐波拉契数列.md )
141
- - [ 跳台阶] ( /算法分类/递归和循环/跳台阶.md )
142
- - [ 变态跳台阶] ( /算法分类/递归和循环/变态跳台阶.md )
143
- - [ 矩形覆盖] ( /算法分类/递归和循环/矩形覆盖.md )
140
+ - [ 斐波拉契数列] ( /算法分类/递归和循环/斐波拉契数列.md ) ⭐⭐
141
+ - [ 跳台阶] ( /算法分类/递归和循环/跳台阶.md ) ⭐⭐
142
+ - [ 变态跳台阶] ( /算法分类/递归和循环/变态跳台阶.md ) ⭐⭐
143
+ - [ 矩形覆盖] ( /算法分类/递归和循环/矩形覆盖.md ) ⭐⭐
144
144
145
145
## 回溯算法
146
146
151
151
- [ N皇后问题] ( /算法分类/回溯算法/N皇后问题 ) ⭐⭐⭐
152
152
- [ N皇后问题2] ( /算法分类/回溯算法/N皇后问题2 ) ⭐⭐⭐
153
153
154
+ ## 动态规划
155
+
156
+ - [ 斐波拉契数列] ( /算法分类/递归和循环/斐波拉契数列.md ) ⭐⭐
157
+
158
+
154
159
## 更新计划
155
160
156
- - 动态规划
157
161
- 贪心算法
158
162
- 解题指南-二叉树
159
163
- 解题指南-数组
Original file line number Diff line number Diff line change 22
22
## 代码
23
23
24
24
25
+ ### 递归解法
26
+
27
+ ``` js
28
+ function Fibonacci (n ) {
29
+ if (n < 2 ) {
30
+ return n;
31
+ }
32
+ return Fibonacci (n - 1 ) + Fibonacci (n - 2 );
33
+ }
34
+ ```
35
+
36
+
37
+ ### 递归加记忆化
38
+
39
+ 使用一个数组缓存计算过的值。
40
+
41
+ ``` js
42
+ function Fibonacci (n , memory = []) {
43
+ if (n < 2 ) {
44
+ return n;
45
+ }
46
+ if (! memory[n]) {
47
+ memory[n] = Fibonacci (n - 1 , memory) + Fibonacci (n - 2 , memory);
48
+ }
49
+ return memory[n];
50
+ }
51
+ ```
52
+
53
+
54
+ ### 动态规划解法
55
+
56
+
25
57
``` js
26
- function Fibonacci (n )
27
- {
58
+ function Fibonacci (n ){
28
59
if (n<= 1 ){
29
60
return n;
30
61
}
You can’t perform that action at this time.
0 commit comments