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

    题目地址:跳台阶

    题目描述                                   

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

    时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 64M,其他语言128M

    题目示例                                   

    示例1:

    输入:
    1
    返回值:
    1

    示例2:

    输入:
    4
    返回值:
    5

    解法分析                                   

    我记得这好像是一道小学奥数题?当有n节台阶时,如果青蛙最后一步跳一节,那么它跳n-1节台阶时有多少种跳法,跳n节台阶时就有多少种跳法;如果青蛙最后一步跳两节,那么它跳n-2节台阶时有多少种跳法,跳n节台阶时就有多少种跳法。可以看出,跳n节台阶的跳法种类,相当于跳n-1节台阶和跳n-2节台阶跳法的和。

    熟悉吧?没错,这就是个斐波那契数列。解法自然跟上一题斐波那契数列一致。

    代码                                         

    数组+循环:

     1 function jumpFloor(number)
     2 {
     3     // write code here
     4     if(number<=2){
     5         return number;
     6     }else{
     7         var fib = [];
     8         fib[1] = 1;
     9         fib[2] = 2;
    10         for(var i=3;i<=number;i++){
    11             fib[i]=fib[i-2]+fib[i-1];
    12         }
    13         return fib[number];
    14     }
    15 }

    循环:

     1 function jumpFloor(number)
     2 {
     3     // write code here
     4     var res = 1, mid = 2;
     5     while(--number){
     6         mid+=res;
     7         res=mid-res;
     8     }
     9     return res;
    10 }

    执行结果                                   

  • 相关阅读:
    关于mui的主页面、子页面、页面跳转
    设计图片反复闪,点击后停止(设计定时器)
    购物车+支付宝
    登陆判读,并跳转到指定页面(window.location.href='http://localhost/index.html')
    template.js遍历对象的写法
    jqurey的跨域使用getjson(http://www.jb51.net/Special/894.htm)
    安装sass并ruby更改淘宝镜像
    Y君面试记
    MapReduce 阅读笔记
    安全感
  • 原文地址:https://www.cnblogs.com/sunlinan/p/14206806.html
Copyright © 2011-2022 走看看