zoukankan      html  css  js  c++  java
  • 剑指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;
        }
    }

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

  • 相关阅读:
    浅析 MySQL Replication(转)
    mysql优化案例
    create index 与 alter table add index 区别
    /etc/sysctl.conf参数解释(转)
    Linux内核 TCP/IP参数调优
    OneProxy常用参数说明
    转载:如何在面试中写出好的代码
    F面经:painting house
    Lintcode: Merge Sorted Array II
    Lintcode: Median
  • 原文地址:https://www.cnblogs.com/yyfyl/p/9457923.html
Copyright © 2011-2022 走看看