剑指offer 10矩形覆盖

Posted yyfyl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer 10矩形覆盖相关的知识,希望对你有一定的参考价值。

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

java版本:

public class Solution {

    public  static void main(String[] args){
        long startTime=System.currentTimeMillis();
        System.out.println("第23项的结果是:"+RectCover(23));
        long endTime=System.currentTimeMillis();
        System.out.println("程序执行的时间:"+(endTime-startTime)+"ms");
    }
    /*递归*/
    /*public static int RectCover(int target){
        if(target<3){
            return target;
    }else{
            return RectCover(target-1)+RectCover(target-2);
        }
    }*/
    /*非递归*/
    public static int RectCover(int target){
        if(target<2){
            return target;
    }else{
            int a=1;
            int b=2;
            int c=0;
            for(int i=3;i<=target;i++){
                c=a+b;
                a=b;
                b=c;
                
            }
            return c;
        }
    }
    
}

js版本:

function rectCover(number)
{
    if(number<3){
        return number;
    }else{
        var a=1,b=2,c=0;
        for(var i=3;i<=number;i++){
            c=a+b;
            a=b;
            b=c;
        }
        return c;
    }
}

总结这道题用的也是斐波那契数列,思想和前几道题一致,不明白的同学可以翻翻我之前做过的题。故在此就不做详述,还是建议大家不用递归,时间复杂度较高。

以上是关于剑指offer 10矩形覆盖的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer 10矩形覆盖

剑指offer(10)矩形覆盖

剑指offer 10:矩形覆盖

10剑指offer--矩形覆盖

剑指offer[10]——矩形覆盖

剑指offer系列——10.矩阵覆盖