剑指offer:矩形覆盖(动态规划)

 其实就是斐波那契数列 或者跳台阶,根据前面的值确定后面的可能性

 

我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?

最后只能是竖着放一个或者横着放两个

f(2)=1+f(2-1);

f(3) = f(3-2)+f(3-1)

f(4) = f(4-2)+f(4-2)

 public int RectCover(int number) {
        if(number<=0) return 0;  
        int f0 =1, f1 = 1;  
        
        for(int i=2; i<=number;i++){ 
            int temp = f0;
            f0 = f1;  
            f1 = temp + f1;  
            
            
        }  
        return f1;  
    }

 

posted on 2017-08-26 23:10  zhangxiaoyu  阅读(187)  评论(0)    收藏  举报

导航