动态规划法,其实原理和青蛙跳台阶一样的,递推公式都是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