zoukankan      html  css  js  c++  java
  • 剑指offer 09变态跳台阶

    一只青蛙一次可以跳上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位。

  • 相关阅读:
    kuberdm安装
    docker网络
    docker安装及基本使用
    慢日志
    mysql-5.7主从复制
    MySQL-5.6主从复制
    MySQL索引原理
    Kubernetes的kubeadm项目安装部署
    十六、kubernetes之安全实验案例
    十五、Kubernetes之安全配置
  • 原文地址:https://www.cnblogs.com/yyfyl/p/9409360.html
Copyright © 2011-2022 走看看