zoukankan      html  css  js  c++  java
  • A题之变态青蛙跳

    一仅仅青蛙一次能够跳上1级台阶,也能够跳上2级……它也能够跳上n级。

    求该青蛙跳上一个n级的台阶总共同拥有多少种跳法。


    分析:
    这是一个斐波拉契数列的引申问题,先来看看斐波拉契数列:
    n<=1,    f(n)=1;
    n>=2,    f(n)=f(n-1)+f(n-2);
    假设这个题变一下“一仅仅青蛙一次能够跳上1级台阶。也能够跳上2级。求该青蛙跳上一个n级的台阶总共同拥有多少种跳法。”就成了典型的斐波拉契数列问题了。

    回过头来看这个题,貌似没有头绪。怎么办,採用最笨的方法。穷举:
    n<=1,     f(n)=1;
    n=2,        f(2)=2;
    n=3,        f(3)=4;    
    第一次走一步,2种。第一次走俩步,1种。一次走三步。1种;
    n=4,        f(4)=8;    
    第一次走一步,4种。第一次走俩步,2种;第一次走三步。1种。一次走四步,1种。
    是不是看到规律了:
    f(n)=f(n-1)+f(n-2)+.....+f(1)+f(0)=2f(n-1)

    上Java代码:

    public class Solution {
        public int JumpFloorII(int target) {
          if(target<=1)
                return 1;
            else
                return 2*JumpFloorII(target-1);
        }
    }
  • 相关阅读:
    sqlserver 日期格式化
    CentOS7系统 ansible自动化部署多台服务器部署
    Linux运维跳槽40道面试精华题
    Linux下SVN创建新的项目
    日志切割
    SVN的安装和启动SVN的安装
    jenkins+Gitlab+maven+tomcat实现自动集成、打包、部署
    nginx启动脚本
    nginx如何调用php
    redis常用命令
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8448507.html
Copyright © 2011-2022 走看看