题目:爬楼梯(斐波那契数列)

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

示例:

示例 1:

输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1.  1 阶 + 1 阶
2.  2 阶

示例 2:

输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1.  1 阶 + 1 阶 + 1 阶
2.  1 阶 + 2 阶
3.  2 阶 + 1 阶

使用语言JavaScript:

斐波那契数列公式法:

/*** @param {number} n* @return {number}*/var climbStairs = function(n) {var sum=0;sum=1/Math.sqrt(5)*(Math.pow((1+Math.sqrt(5))/2,n+1)-Math.pow((1-Math.sqrt(5))/2,n+1))return sum;};

分析:

斐波那契数列是一个很有名的公式,就是数列从第3项开始,每一项都等于前两项之和。这就相当于我们只需要将数值前两项的值推导出来就可以了,一开始我使用了递归的做法,没想到计算超时了。后来我直接输入斐波那契数列的公式,就直接成功了。我也尝试了一下使用数组的做法,也成功了,只有递归算法不用记忆化计算会超出计算时间。

另外两种方法代码如下:

暴力递归方法:

/*** @param {number} n* @return {number}*/var climbStairs = function(n) {var sum=0;if(n==1){return 1;}if(n==2){return 2;}sum = climbStairs(n-2)+climbStairs(n-1);return sum;};

数组方法:

/*** @param {number} n* @return {number}*/var climbStairs = function(n) {//数组方法var array=[];if (n == 0){return 1;}    array[0] = 1;array[1] = 1;for (var i = 2; i <= n; i++) {array[i] = array[i - 1] + array[i - 2];}return array[n];};

力扣一日一练(7)——爬楼梯(斐波那契数列)相关推荐

  1. 《LeetCode力扣练习》剑指 Offer 10- I. 斐波那契数列 Java

    <LeetCode力扣练习>剑指 Offer 10- I. 斐波那契数列 Java 一.资源 题目: 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N) ...

  2. 爬楼梯-斐波那契数列

    每日算法---爬楼梯 题目: 假设你正在爬楼梯.需要 n 阶你才能到达楼顶.每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数.示例 1:输入: 2 输 ...

  3. python小明爬楼梯_LintCode Python 简单级题目 111.爬楼梯 (斐波纳契数列 青蛙跳)

    **设f(n)为n阶台阶的情况下,所有不同的跳法方法的总和!** 1.如果起始跳一阶的话,剩余的n-1阶就有 f(n-1) 种跳法: 2.如果起始跳二阶的话,剩余的n-2阶就有 f(n-2) 种跳法: ...

  4. 力扣 1414. 和为 K 的最少斐波那契数字数目

    题目 给你数字 k ,请你返回和为 k 的斐波那契数字的最少数目,其中,每个斐波那契数字都可以被使用多次. 斐波那契数字定义为: F1 = 1 F2 = 1 Fn = Fn-1 + Fn-2 , 其中 ...

  5. 【力扣动态规划基础专题】:509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯 62. 不同路径 63. 不同路径 II 343. 整数拆分 96. 不同的二叉搜索树

    /** 动态规划专题:这是最简单的并且已经给出了转移方程,平时我们用dp[]数组来表示转移方程转移方程: dp[n] = dp[n-1]+dp[n-2]初始值:dp[0] = 0 , dp[1] = ...

  6. 用C语言写爬楼梯(斐波那契数列的应用,迭代与递归)爬楼梯问题超详细,看完这一篇就够了。

    爬楼梯问题实际上就是斐波那契数列的应用,首先我们讲讲什么是斐波那契数列.因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列" ...

  7. python leetcode 爬楼梯问题 斐波那契数列

    爬楼梯 问题描述 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 输出: ...

  8. 斐波那契数列;递归函数;爬楼梯问题;

    斐波那契数列: 例如:一个人爬楼梯,每次只能爬1个或两个台阶,假设有n个台阶,那么这个人有多少种不同的爬楼梯方法: 1阶楼梯:1种方法 2阶楼梯:2种方法 3阶楼梯:3种方法 4阶楼梯:5种方法 5阶 ...

  9. 斐波那契数列-爬楼梯算法

    爬楼梯算法 有n级楼梯,有2种爬法,1次1级,或1次2级,问,n级楼梯有多少种爬法? 递归求解 首先,当只有一阶楼梯的时候,很显然只有一种走法:有两阶楼梯的时候,也很显然的知道有两种走法.就会有下面这 ...

最新文章

  1. python 获取程序运行时间
  2. 页面放在哪_思维制胜!PPT内容巨多的页面,这样排版更高大上
  3. hadoop原来是这样的!
  4. python定时器 是线程吗_定时器中断线程python
  5. Spring Boot中初始化资源的几种方式
  6. 人脸识别Python教学
  7. “天生BUFF”华硕主板冷傲ROG
  8. 如何在Microsoft Excel电子表格之间交叉引用单元格
  9. 为什么员工辞职时,领导都要象征性挽留一下?
  10. 性能分析 -- 各种毛刺
  11. C++学习路线图(新)
  12. 12位中年程序员:代码一敲十年,收入虽高前途摇摆
  13. win32 opengl画线
  14. Phonetic symbol 辅音 - 清辅音 -- /ʃ/
  15. 筹码底部共振(同花顺指标 副图 源码 测试图)
  16. asp.net师电子化信息库的设计与实现(源代码+论文)ASP.NET汽车销售管理系统的设计与开发(源代码+论文)
  17. weblogicT3反序列化之CVE-2017-3248CVE-2018-2628CVE-2018-3245
  18. 银河麒麟操作系统开机进入grub提示符界面
  19. Bootstrap-30分钟就能上手的Bootstrap教程【史上最全】
  20. Java 重载(什么是重载?什么时候重载?重载有什么好处?)

热门文章

  1. 链接文件配置(linux文件目录指向另一个目录,ln -s的用法)
  2. 【HTML】淘宝注册页面
  3. 实验室信息管理系统有什么功能?
  4. JavaScript弹出对话框的三种方式
  5. java enum使用_java enum用法详解
  6. 项目管理基础:什么是项目管理?
  7. [转帖]天灾还是人祸,让你知道最爱是谁?
  8. Linux:命名管道
  9. TCP/IP协议应用层之DNS协议
  10. esp8266点亮1.8寸st7735S(2022-10-14)