提交 12fbf291 编写于 作者: R ruiboliu 提交者: labuladong

509 斐波那契数列 Python 3 解法

上级 372b92bf
......@@ -366,4 +366,45 @@ PS:为啥 `dp` 数组初始化为 `amount + 1` 呢,因为凑成 `amount` 金
<img src="../pictures/qrcode.jpg" width=200 >
</p>
======其他语言代码======
\ No newline at end of file
======其他语言代码======
[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
```
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册