Leetcode 509.斐波那契数
1 题目描述(Leetcode题目链接)
斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
F(0) = 0, F(1) = 1
F(N) = F(N - 1) + F(N - 2), 其中 N > 1.
输入:4
输出:3
解释:F(4) = F(3) + F(2) = 2 + 1 = 3.
提示: 0 ≤ N ≤ 30 0 ≤ N ≤ 30 0≤N≤30
2 题解
动态规划,但不用额外开数组。状态转移方程就是 F ( N ) = F ( N − 1 ) + F ( N − 2 ) F(N) = F(N-1)+F(N-2) F(N)=F(N−1)+F(N−2)
class Solution:
def fib(self, N: int) -> int:
if N <= 1:
return N
N1, N2 = 0, 1
for i in range(2, N+1):
N1, N2 = N2, N1 + N2
return N2