题目:假设你正在爬楼梯。需要 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 阶

求解:将 n 个台阶的上楼梯方法数设为 f (n),则可以发现:

    f (3) = f (2) + f (1),f (4) = f (3) + f (2),...f (n) = f (n-1) +f (n-2)。

即:

  • 假设先爬1阶,剩下 n-1 个台阶有f(n-1) 种可能;
  • 假设先爬2阶,剩下 n-2 个台阶有 f(n-2) 种可能,

因此爬n个台阶问题可转化成:
f(n) = f(n-1) + f(n-2)
上述公式是著名的斐波那契公式,此题可转化为求斐波那契数列第 n 项。

1、初始求解代码如下:

class Solution:def climbStairs(self, n: int) -> int:q, p = 2, 1if n == 1:return 1if n == 2:return 2for i in range(2, n):q, p = q + p, qreturn q

2、假设 f (0) = 1,则 f (2) = f (1) + f (0)。因此上述代码可简化为:

class Solution:def climbStairs(self, n: int) -> int:q, p = 1, 1for i in range(n-1):# i = 0 时,n = 2,返回 f(2); # i = 1 时,n = 3,返回 f(3); # 循环一直持续到 i = n - 2,因此输出f(n)q, p = q + p, qreturn q

leetcode每日一题——T70. 爬楼梯(易):斐波那契公式相关推荐

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

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

  2. 力扣一日一练(7)——爬楼梯(斐波那契数列)

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

  3. python侯先生爬楼梯_经典算法题:爬楼梯 ,以斐波那契数列来解题代码案例

    网上这题的解题思路主要有两种:动态规划 斐波那契数列 因为我们用斐波那契数列来解,所以我主要描述方法2. 斐波那契数列 又称 兔子数列, 指得是:1.1.2.3.5.8.13.21.--, 在数学上它 ...

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

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

  5. LeetCode 70. 爬楼梯 (递归斐波那契 | 动态规划)

    70. 爬楼梯 解法1 (暴力递归) 推出递推式子:f(n) = f(n - 1) + f(n - 2) 是一个斐波那契数列,用递归 class Solution {public int climbS ...

  6. [LeetCode-70]-Climbing Stairs(爬楼梯,斐波那契数列问题)

    文章目录 题目相关 Solution 题目相关 [题目解读] 该题就是斐波那契数列问题,可以使用递归方法实现. [原题描述]原题链接 You are climbing a stair case. It ...

  7. 70. 爬楼梯 golang 斐波那契数列

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

  8. 每日一题01、02(斐波那契凤尾、淘宝网店、美国节日、分解因数)

    1.在OSI分层模型中,把传输的比特流划分为帧,是哪一层的功能(C) A 物理层 B 网络层 C 数据链路层 D 传输层 2.下面关于源端口地址和目标端口地址的描述中,正确的是(A) A 在TCP/U ...

  9. LeetCode:递归思想的延伸,从斐波那契数列到爬楼梯模型

    题目描述: 假设你正在爬楼梯.需要 n 阶你才能到达楼顶.每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 看到这个问题的第一反应其实我想到的是排列组合的思想去解答.比如有n阶, ...

最新文章

  1. (JS基础)DOM:节点类型
  2. C语言实验——最小公倍数和最大公约数_JAVA
  3. boost::hana::default_用法的测试程序
  4. android 返回图标,在Toolbar中添加一个返回图标
  5. 池化层:最大池化MaxPool、平均池化AvgPool、自适应池化AdaptiveMaxPool区别--基于pytorch框架
  6. 这个网站收集了很多杂志的审稿周期和收稿、拒稿意见,值得看看
  7. 年轻人的“第一次”寄快递?上有产品下有电商的小米注册快递商标
  8. 数组02 - 零基础入门学习C语言24
  9. 工业互联网标识解析与标识服务机构服务能力成熟度等级评估管理平台【需求规格说明书/用户手册】
  10. 如何优化多数据集关联报表
  11. js处理null和underfined
  12. 李沐动手学深度学习V2-BERT预训练和代码实现
  13. java小时钟实验报告_JAVA实验报告(运用JavaFx实现时钟动画).doc
  14. 【图像检测】基于计算机视觉实现地质断层结构的自动增强和识别附matlab代码
  15. 小乖乖专属-从数据库里查信息发邮件
  16. 蓝桥杯2017年第八届真题-对局匹配
  17. Noteability的一些使用小技巧
  18. CSS语法及其选择器
  19. nyoj 145 聪明的小珂
  20. 如何查询中标公告?工程中标公示在哪里查询?

热门文章

  1. ubuntu 安装输入法
  2. 收藏艺术家作品的最好时机,不容错过!
  3. 门限的限意思是什么_门限是什么意思_门限的翻译_音标_读音_用法_例句_爱词霸在线词典...
  4. 关于足彩任选九的组合算法
  5. VS2005无法找到组件的问题
  6. 尚硅谷redis6的笔记
  7. 新版gsp计算机系统全套资料,(完整版)新版GSP培训
  8. Bootstrap 折叠(collapse)插件面板
  9. 灵动小兔跃然纸上——同人立绘征集大赛链小兔·金奖
  10. 讓15個成功人物搖頭的壞習慣 [转]