《剑指offer》— JavaScript(8)跳台阶

作者: echoVic | 来源:发表于2017-02-10 09:43 被阅读159次

跳台阶

题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。


实现代码

function jumpFloor(number)
{
    if (number<0){
        return -1;
    }else if(number <=2){
        return number
    }
    var arr = [];
    arr[0] = 1;
    arr[1] = 2;
    for(var i = 2; i < number; i++) {
        arr[i] = arr[i - 1] + arr[i - 2];
    }
    return arr[number-1];
}

思路

本题的前提是只有一次1阶或者2阶的跳法:

  1. 假定第一次跳的是一阶,那么剩下的是n-1个台阶,跳法是f(n-1);
  2. 假定第一次跳的是2阶,那么剩下的是n-2个台阶,跳法是f(n-2);
  3. 由假设得出总跳法为:f(n)=f(n-1)+f(n-2);
  4. 当台阶只有一阶时,f(1)=1,只有两阶时时,f(2)=2;
  5. 到这大家估计都看出来了,最终得出的是一个斐波那契数列:
    n=1, f(n)=1
    n=2, f(n)=2
    n>2,且为整数, f(n)=f(n-1)+f(n-2)

相关文章

  • 《剑指offer》— JavaScript(8)跳台阶

    跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 实现...

  • 剑指 offer:8、跳台阶

    8. 跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(...

  • 剑指Offer - 8 - 跳台阶

    题目描述 跳台阶 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次...

  • 《剑指offer》— JavaScript(9)变态跳台阶

    变态跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶...

  • <<剑指offer>>--javascript(7)-变态跳台阶

    变态跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶...

  • 剑指offer - 青蛙跳台阶 - JavaScript

    专注前端与算法的系列干货分享,欢迎关注(¬‿¬):「微信公众号:心谭博客」| xxoo521.com | GitH...

  • [剑指offer] 跳台阶

    本文首发于我的个人博客:尾尾部落 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台...

  • 剑指Offer——跳台阶

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

  • [剑指Offer]跳台阶

    本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03...

  • <<剑指offer>>--javascript(8)-矩阵覆盖

    矩阵覆盖 题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*...

网友评论

    本文标题:《剑指offer》— JavaScript(8)跳台阶

    本文链接:https://www.haomeiwen.com/subject/wqhgittx.html