今天重新看了下动态规划,
它和递归的区别就是,它是自下而上的。
还了解到状态压缩
如果我们发现每次状态转移只需要 DP table 中的一部分,那么可以尝试用状态压缩来缩小 DP table 的大小,只记录必要的数据于是就刷了这道简答题,用到了状态压缩
class Solution: def fib(self, n: int) -> int: if n == 0: return 0 if n == 1 or n == 2: return 1 prev = 1 curr = 1 for i in range(3, n + 1): sum = prev + curr prev = curr curr = sum return sum