Skip to content

Commit

Permalink
509 斐波那契数列 Python 3 解法
Browse files Browse the repository at this point in the history
  • Loading branch information
agi-templar authored and labuladong committed Nov 17, 2020
1 parent 372b92b commit 12fbf29
Showing 1 changed file with 42 additions and 1 deletion.
43 changes: 42 additions & 1 deletion 动态规划系列/动态规划详解进阶.md
Original file line number Diff line number Diff line change
Expand Up @@ -366,4 +366,45 @@ PS:为啥 `dp` 数组初始化为 `amount + 1` 呢,因为凑成 `amount` 金
<img src="../pictures/qrcode.jpg" width=200 >
</p>

======其他语言代码======
======其他语言代码======

[DapangLiu](https://github.com/DapangLiu) 提供 509. 斐波那契数 Python3 解法代码:

递归写法

```python
class Solution:
def fib(self, N: int) -> int:
if N <= 1:
return N
return self.fib(N-1) + self.fib(N-2)
```

动态规划写法

```python
class Solution:
def fib(self, N: int) -> int:
if N == 0:
return 0
# init
result = [0 for i in range(N+1)]
result[1] = 1

# status transition
for j in range(2, N+1):
result[j] = result[j-1] + result[j-2]
return result[-1]
```

动态规划写法 (状态压缩)

```python
class Solution:
def fib(self, n: int) -> int:
# current status only depends on two previous status
dp_0, dp_1 = 0, 1
for _ in range(n):
dp_0, dp_1 = dp_1, dp_0 + dp_1
return dp_0
```

0 comments on commit 12fbf29

Please sign in to comment.