今天重新看了下动态规划,
它和递归的区别就是,它是自下而上的。
还了解到状态压缩
如果我们发现每次状态转移只需要 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