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

 1 class Solution {
 2 public:
 3     int rectCover(int number) {
 4         int res=0;
 5         int pre1=1;
 6         int pre2=2;
if(number==0) return 0;
7 if(number==1) return 1; 8 if(number==2) return 2; 9 for(int i=3;i<number+1;i++){ 10 res=pre1+pre2; 11 pre1=pre2; 12 pre2=res; 13 } 14 return res; 15 } 16 };

也可以采用矩阵的方式。这里可以用循环代替递归。

posted @ 2015-08-24 22:09  鸭子船长  阅读(3109)  评论(2编辑  收藏  举报