本质上还是斐波那契数组

public class Solution {
    public int rectCover(int n) {
        if (n <= 2) return n;
        int a1 = 1;
        int a2 = 2;
        int ret = 0;
        for (int i = 3; i <= n; i++) {
            ret = a1 + a2;
            a1 = a2;
            a2 = ret;
        }
        return ret;
    }
}