剑指offer【11】- 矩形覆盖
题目:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
在分析前不知道是什么序列,所以先看了n=1,n=2,n=3,n=4的情况摸索规律,主要是看 n 和 n-1 的隐含联系。(2*1 指 长宽)
结论:f(n) = f(n-1)+f(n-2) (n>=3)
1 public class Solution { 2 public int RectCover(int target) { 3 if(target == 0){ 4 return 0; 5 }else if(target == 1){ 6 return 1; 7 }else if(target == 2 ){ 8 return 2; 9 }else{ 10 return RectCover(target-1)+RectCover(target-2); 11 } 12 } 13 }