leetcode每日一题——T70. 爬楼梯(易):斐波那契公式
题目:假设你正在爬楼梯。需要 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. 爬楼梯(易):斐波那契公式相关推荐
- 用C语言写爬楼梯(斐波那契数列的应用,迭代与递归)爬楼梯问题超详细,看完这一篇就够了。
爬楼梯问题实际上就是斐波那契数列的应用,首先我们讲讲什么是斐波那契数列.因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列" ...
- 力扣一日一练(7)——爬楼梯(斐波那契数列)
题目:爬楼梯(斐波那契数列) 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例: 示例 1: ...
- python侯先生爬楼梯_经典算法题:爬楼梯 ,以斐波那契数列来解题代码案例
网上这题的解题思路主要有两种:动态规划 斐波那契数列 因为我们用斐波那契数列来解,所以我主要描述方法2. 斐波那契数列 又称 兔子数列, 指得是:1.1.2.3.5.8.13.21.--, 在数学上它 ...
- python leetcode 爬楼梯问题 斐波那契数列
爬楼梯 问题描述 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 输出: ...
- LeetCode 70. 爬楼梯 (递归斐波那契 | 动态规划)
70. 爬楼梯 解法1 (暴力递归) 推出递推式子:f(n) = f(n - 1) + f(n - 2) 是一个斐波那契数列,用递归 class Solution {public int climbS ...
- [LeetCode-70]-Climbing Stairs(爬楼梯,斐波那契数列问题)
文章目录 题目相关 Solution 题目相关 [题目解读] 该题就是斐波那契数列问题,可以使用递归方法实现. [原题描述]原题链接 You are climbing a stair case. It ...
- 70. 爬楼梯 golang 斐波那契数列
题目 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 输出: 2 解释: ...
- 每日一题01、02(斐波那契凤尾、淘宝网店、美国节日、分解因数)
1.在OSI分层模型中,把传输的比特流划分为帧,是哪一层的功能(C) A 物理层 B 网络层 C 数据链路层 D 传输层 2.下面关于源端口地址和目标端口地址的描述中,正确的是(A) A 在TCP/U ...
- LeetCode:递归思想的延伸,从斐波那契数列到爬楼梯模型
题目描述: 假设你正在爬楼梯.需要 n 阶你才能到达楼顶.每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 看到这个问题的第一反应其实我想到的是排列组合的思想去解答.比如有n阶, ...
最新文章
- 【多权威学术机构协办】【EI、Scopus检索往届会议】先进算法控制工程方向征稿...
- R将字符串类型(Character)转化为因子类型(Factor)
- vc的速度有c语言快吗,大家帮看看,怎么回事?Delphi竟比vc++还快
- tplink控制上网设备_上网总有人抢网速如何解决 上网卡慢解决方法【详解】
- 【Python学习】 - 如何在Spyder中弹出plot绘图窗口而不是在Console中绘图
- 1119. Pre- and Post-order Traversals (30)
- FA_手工明细增加固定资产(流程)
- Android应用第一次安装成功点击“打开”后Home键切出应用后再点击桌面图标返回导致应用重启问题...
- php 反射 调用私有方法,PHP通过反射方法调用执行类中的私有方法
- Pycharm报错解决:error:please select a valid Python interpreter 及一些基本设置
- 64位字长的高性能微型计算机,什么是字长字节和字长的区别
- 敏感型人格的特征,怎么改变敏感型性格?
- 2016集训队论文吉如一
- 台式计算机开关电源原理图,计算机开关电源原理图电路分析
- 用c语言输出100到200之间的素数
- 使用ffmpeg破解m3u8加密视频文件
- Go语言——cap函数详解
- 如何将PPT制成二维码?
- 如何用 Node.js 实现一个简单的 Websocket 服务?
- 好家伙,这几个隐藏功能,太香了
热门文章
- 用“生物进化论”来阐述“恶意代码进化论”
- 今日芯声 | 模仿“宏颜获水”?任达华遇刺意味着什么
- jquery validation插件
- 线性代数攻略(适合复习考试,零基础不挂科秘籍)
- C语言第二十课:实用调试技巧
- 这个「微信年度报告」你被骗了吗?
- socket error 10061错误
- kubernetes 1.9.2 安装步骤
- UI自动化测试-数据驱动(ddt)
- Fix8 0.6.6 发布,C++ 实现的 FIX 框架