矩形覆盖
我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2n的大矩形,总共有多少种方法?
比如n=3时,23的矩形块有3种覆盖方法:
思路
覆盖第n个矩形,可以拆解为n-1个有多少种方法 + n-2 有多少种方法
求n-2个矩形有多少种方法 这个比较难想到,想上图的下面那一步
代码
public class Solution {
public int rectCover(int target) {
/* 2*1 1种, 2*2 2种, 2*3 3种 2*4 4种*/
if(target <= 0) return 0;
if(target == 1) return 1;
if(target == 2) return 2;
return rectCover(target-1)+rectCover(target-2);
}
}