码迷,mamicode.com
首页 > 其他好文 > 详细

剑指offer 09变态跳台阶

时间:2018-08-02 20:43:32      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:ndt   第一步   get   fun   return   print   solution   UNC   style   

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
java版本:
public class Solution {

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

js版本:

function jumpFloorII(number)
{
    if(number==1){
        return number;
    }else{
          return 2*jumpFloorII(number-1);      
    }// write code here
}

总结:用递归的思路

第一步可以跳1阶,跳2阶.......可以跳n阶,有n种跳法。

第二步剩余(n-1)个台阶,f(n-1)种跳法。

第三步剩余(n-2)个台阶,f(n-2)种跳法。

所以

f(n)=f(n-1)+f(n-2)+.........f(1)      

f(n-1)=f(n-2)+f(n-3)+.........f(1) 

两式相减得到发f(n)=2*f(n-1)。

左移思路:

每一项的结果都是上一项的2倍,所以左移1位。

 

剑指offer 09变态跳台阶

标签:ndt   第一步   get   fun   return   print   solution   UNC   style   

原文地址:https://www.cnblogs.com/yyfyl/p/9409360.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!