• number <= 3,直接返回;
  • 定义dp记录前两项的值;
  • 递推:当前项=前两项之和;
  • 返回最后结果。
class Solution {
public:
    int rectCover(int number) {
        if (number <= 3) return number;
        int dp[2];
        dp[0] = 2;
        dp[1] = 3;
        for (int i = 4; i <= number; i++) {
            int sum = dp[0] + dp[1];
            dp[0] = dp[1];
            dp[1] = sum;
        }
        return dp[1];
    }
};