剑指offer--矩形覆盖

题目描述

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

分类:数组

解法1:斐波那契数列
public class Solution {
    public int RectCover(int target) {
		if(target==1) return 1;
		if(target==2) return 2;
		return RectCover(target-1)+RectCover(target-2);
    }
}

下面是迭代算法,用空间换时间

public class Solution {
    public int RectCover(int target) {
        if(target==0||target==1) return 1;  
        if(target==2) return 2;  
        int pre  = 1;  
        int next = 2;  
        int t = 0;  
        int i =2;  
        while(i


你可能感兴趣的:(剑指offer,数组,剑指offer题解)