python算法爬楼梯
文章目录
- 题目
- 方法一:直接递归法
- 方法二:递归、保存中间值法
- 方法三:循环法,自底向上累加
- 参考
题目
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。请问有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数,其范围为:1 ≤ n ≤ 100。
方法一:直接递归法
def func(n):if n == 1 or n == 2:return nreturn func(n - 1) + func(n - 2)
print(func(6))
当n比较大时,这种方法效率很低。
方法二:递归、保存中间值法
把计算过的值存入字典,防止重复计算
如计算f(6),需要求f(5)和f(4),计算f(5)需要求f(4)和f(3),那么f(4)就被重复计算了
adict = {}
def func(n):if n == 1 or n == 2:return nif adict.get(n,None) != None:return adict.get(n,None)else:result = func(n - 1) + func(n - 2)adict[n] = resultreturn result
print(func(6))
这种方法效率会高很多,其实也可以通过循环来实现
方法三:循环法,自底向上累加
def func(n):a, b = 1, 1while n > 1:a, b = b, a + bn -= 1return b
print(func(6))
这种方法的效率也很高
参考
视频:https://www.bilibili.com/video/BV1eg411w7gn?p=5&spm_id_from=pageDriver&vd_source=0467ab39cc5ec5940fee22a0e7797575
文章:https://www.jianshu.com/p/301f7bb7b574
python算法爬楼梯相关推荐
- python leetcode 爬楼梯问题 斐波那契数列
爬楼梯 问题描述 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 输出: ...
- 经典算法——爬楼梯(解法归纳)(学习笔记)
问题分析 假设你正在爬楼梯.需要 n 阶你才能到达楼顶.每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢?是引用 当n=1时,只需爬一个台阶,就是一种解法. 当n=2时,可以走两次 ...
- Java算法——爬楼梯(LeetCode第70题)
问题描述 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 示例 分析 题目中给出,上台阶的方式只有两种,一种为一步跨一阶,一种为 ...
- 贪心算法爬楼梯问题--LeetCode746《Blind-Stab》
leetcode网第746号题:题目如下 数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始). 每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可 ...
- 【每日一算法】爬楼梯
微信改版,加星标不迷路! 每日一算法-爬楼梯 作者:阿广 阅读目录 ? 题目 ? 解析 ? 完整代码 1 题目 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多 ...
- 爬楼梯-斐波那契数列
每日算法---爬楼梯 题目: 假设你正在爬楼梯.需要 n 阶你才能到达楼顶.每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数.示例 1:输入: 2 输 ...
- python爬楼梯_Python3爬楼梯算法示例
Python3爬楼梯算法示例 本文实例讲述了Python3爬楼梯算法.分享给大家供大家参考,具体如下: 假设你正在爬楼梯.需要 n 步你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同 ...
- python爬楼梯问题_爬楼梯算法的数学思路
爬楼梯算法的数学思路 今日腾讯实习面试,问到一题算法. 爬楼梯问题:一个楼梯一共n个台阶,一次上1或者2个台阶.问,一共多少种解法. 这个问题,当时学递归的时候,我记得做过.但是已经一年半没写过递归和 ...
- python侯先生爬楼梯_经典算法题:爬楼梯 ,以斐波那契数列来解题代码案例
网上这题的解题思路主要有两种:动态规划 斐波那契数列 因为我们用斐波那契数列来解,所以我主要描述方法2. 斐波那契数列 又称 兔子数列, 指得是:1.1.2.3.5.8.13.21.--, 在数学上它 ...
- python跳台阶_递推典型算法:猴子爬山,跳台阶,爬楼梯(牛客网)、魔法深渊(快手)----Python、Java...
递推算法的基本思想是把一个复杂的.庞大的计算过程转化为简单过程的多次重复,其首要问题是得到相邻的数据项之间的关系,即递推关系.以猴子爬山为例. 1.问题的提出 一个顽猴在一座有30级太假的小山上爬山活 ...
最新文章
- classpath和读取resources目录下的文件
- sae 本地环境 mysql数据库_SAE本地环境与真实环境的差别
- supervisor 重启_supervisor_twiddler的使用
- Vue源码学习: 关于对Array的数据侦听
- win7系统mysql连接不上数据库吗_Win7系统使用数据库时mysql频繁掉线无法连接的两种解决方法...
- caffe手写数字分类-学习曲线
- NoSQL数据库简介
- 自己写段代码批量修改照片的Exif数据
- 一文带你彻底了解电子灌封(灌胶)工艺技术
- 怎么在线把图片转成PDF?几个步骤轻松转换
- 详解批量梯度下降法(BGD)、随机梯度下降法(SGD)和小批量梯度下降法(MBGD)
- 第十三届——蓝桥杯嵌入式第二场
- LINUX嵌入式系统开发平台选择
- Python基础语法视频教程全39集,历时1个多月终于更新完毕,需要的拿走!
- 人死后竟然会知道自己死了?
- 负重阳光城之悬崖边的股价|一点财经
- mysql防注入插件_MyBB HM_My Country Flags 插件'cnam'参数SQL注入漏洞
- 京东试用python全自动申请程序
- C语言课程设计——N-S图
- Python调用有道语音API实现文字转音频