Skip to content

Commit acbc30e

Browse files
committed
🎨 update: 动态规划
1 parent cb9ebfd commit acbc30e

File tree

2 files changed

+42
-7
lines changed

2 files changed

+42
-7
lines changed

README.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -137,10 +137,10 @@
137137

138138
## 递归和循环
139139

140-
- [斐波拉契数列](/算法分类/递归和循环/斐波拉契数列.md)
141-
- [跳台阶](/算法分类/递归和循环/跳台阶.md)
142-
- [变态跳台阶](/算法分类/递归和循环/变态跳台阶.md)
143-
- [矩形覆盖](/算法分类/递归和循环/矩形覆盖.md)
140+
- [斐波拉契数列](/算法分类/递归和循环/斐波拉契数列.md)⭐⭐
141+
- [跳台阶](/算法分类/递归和循环/跳台阶.md)⭐⭐
142+
- [变态跳台阶](/算法分类/递归和循环/变态跳台阶.md)⭐⭐
143+
- [矩形覆盖](/算法分类/递归和循环/矩形覆盖.md)⭐⭐
144144

145145
## 回溯算法
146146

@@ -151,9 +151,13 @@
151151
- [N皇后问题](/算法分类/回溯算法/N皇后问题)⭐⭐⭐
152152
- [N皇后问题2](/算法分类/回溯算法/N皇后问题2)⭐⭐⭐
153153

154+
## 动态规划
155+
156+
- [斐波拉契数列](/算法分类/递归和循环/斐波拉契数列.md)⭐⭐
157+
158+
154159
## 更新计划
155160

156-
- 动态规划
157161
- 贪心算法
158162
- 解题指南-二叉树
159163
- 解题指南-数组

算法分类/递归和循环/斐波拉契数列.md

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,40 @@
2222
## 代码
2323

2424

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+
2557
```js
26-
function Fibonacci(n)
27-
{
58+
function Fibonacci(n){
2859
if(n<=1){
2960
return n;
3061
}

0 commit comments

Comments
 (0)