zoukankan      html  css  js  c++  java
  • 剑指offer 08跳台阶

    一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

    java版本:

    public class Solution {
    
        public  static void main(String[] args){
            long startTime=System.currentTimeMillis();
            System.out.println("第30项的结果是:"+JumpFloor(30));
            long endTime=System.currentTimeMillis();
            System.out.println("程序执行的时间:"+(endTime-startTime)+"ms");
        }
        public static int JumpFloor(int target){
            int a=2,b=1,c=0;
            if(target==1||target==2){
                return target;
            }else{
                for(int i=3;i<=target;i++){
                    c=a+b;
                    b=a;
                    a=c;
                }
                return c;
            }
        }
        /*public static int JumpFloor(int number){
            if(number<=0) {
                   return 0;
                }else if(number>0&&number<4){
                   return number;
                }else{
                   return JumpFloor(number-1)+JumpFloor(number-2);
                }
        }
        */
    }

    js版本:

    function jumpFloor(number)
    {
        if(number<=0) {
           return 0;
        }else if(number>0&&number<4){
           return number;
        }else{
           return jumpFloor(number-1)+jumpFloor(number-2);
        }
        // write code here
    }

    总结:和昨天的斐波那契数列思路一致,递归的非常消耗时间。建议用存取中间项的形式做。

  • 相关阅读:
    Intern Day7
    Intern Day7
    Intern Day7
    Intern Day6
    Intern Day6
    Intern Day6
    Intern Day6
    Intern Day6
    萧萧远树疏林外,一半秋山带夕阳
    飞线
  • 原文地址:https://www.cnblogs.com/yyfyl/p/9403410.html
Copyright © 2011-2022 走看看