非常简单,但经常会用到。还学到一行代码的等号中是同时计算的,
a, b = b, a + b # 同时更新 a 和 b
不同于,下面的是先后顺序
a=b
b=a+b
题目
斐波那契数
斐波那契数 (通常用 F(n)
表示)形成的序列称为 斐波那契数列 。该数列由 0
和 1
开始,后面的每一项数字都是前面两项数字的和。也就是:
F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1
给定 n
,请计算 F(n)
。
思路
斐波那契数列(Fibonacci Sequence)与算法之间有密切的关系,尤其在优化问题、递归与动态规划等方面有广泛的应用。斐波那契数列是算法中一个经典的例子,用于展示不同算法的效率、时间复杂度分析以及优化技术。动态规划由于每次只需要前两项,可以将空间优化到 O(1)。
代码
class Solution:def fib(self, n: int) -> int:a = 0b = 1if n == 0:return 0elif n == 1:return 1for i in range(2, n + 1):a, b = b, a + b # 同时更新 a 和 breturn b