动态规划法,其实原理和青蛙跳台阶一样的,递推公式都是dp[i] = dp[i-1]+dp[i-2],因为给定的dp[0] = 0,所以这里我直接把前三项dp都初始化,即dp[0] = 0, dp[1] = 1, dp[2] = 2, 后面的就可以用递推公式来求了
class Solution:
def rectCover(self , number: int) -> int:
if number <= 2:
return number
else:
dp = [0]*(number+1)
dp[0] = 0
dp[1] = 1
dp[2] = 2
for i in range(3,number+1):
dp[i] = dp[i-1] + dp[i-2]
return dp[-1]
# write code here