Cllimbing Stairs [LeetCode 70]
1- 问题描述
You are climbing a stair case. It takes n steps to reach to the top.
Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?
2- 思路分析
很自然的会想到递归,假设 n 级台阶有 T(n) 种不同走法。最后一步存在两种情况:剩下 1 级台阶,或者,剩下 2 级台阶。
第一种情形,则前面 n-1 步有 T(n-1)种走法;
第二种情形,则前面 n-2 步有 T(n-2)种走法。
故有:T(n) = T(n-1) + T(n-2),其中 T(1) = 1, T(2) = 2。正好是 Fibonacci 数列!
递归算法能缩短程序代码、提高编程效率,但是它也有致命的弱点:如果递归调用地层次过多甚至无休止的进行递归调用,将耗尽系统资源(栈满),出现“堆栈溢出错误”。所幸的是,一般可以用递归解决的问题也可以用循环解决!
3- Python实现
1 # -*- coding: utf-8 -*- 2 # Climbing Stairs 3 # 递归实现 4 5 def climbStairs(n): 6 if not n: return 0 7 solv = [] 8 solv.extend([1, 2]) # T(1), T(2) 9 if n >= 3: 10 for i in range(2, n): 11 solv.append(solv[i-1] + solv[i-2]) 12 return solv[n-1]
1 # -*- coding: utf-8 -*- 2 # Climbing Stairs 3 # 循环实现 4 5 def climbStairs(n): 6 if not n: return 0 7 if n == 1: return 1 8 if n == 2: return 2 9 10 a, b = 1, 2 11 for i in range(2, n): 12 a, b = b, a + b 13 return b
转载于:https://www.cnblogs.com/freyr/p/4499847.html
Cllimbing Stairs [LeetCode 70]相关推荐
- 【斐波那切数列】LeetCode 70. Climbing Stairs
LeetCode 70. Climbing Stairs 这是一道利用斐波那切数列求解的题目.求斐波那切数列有比较经典的4种方法 (1)递归法:复杂度太高 (2)迭代法:时间复杂度为O(n)O(n)O ...
- [勇者闯LeetCode] 70. Climbing Stairs
[勇者闯LeetCode] 70. Climbing Stairs Description You are climbing a stair case. It takes n steps to rea ...
- LeetCode 70爬楼梯71简化路径72编辑距离(dp)
新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注这个潇洒青年一起飞,回 ...
- 动态规划基础——爬楼梯(Leetcode 70)
题目选自Leetcode 70.爬楼梯 动态规划的基础题,类似斐波那契数列一样的一维dp 状态转移方程为: dp[i] = dp[i-1] + dp[i-2]; 题目描述: 解题代码: int cli ...
- Python描述 LeetCode 70. 爬楼梯
Python描述 LeetCode 70. 爬楼梯 大家好,我是亓官劼(qí guān jié ),在[亓官劼]公众号.CSDN.GitHub.B站等平台分享一些技术博文,主要包括前端开发.pyt ...
- [LeetCode]70.Climbing Stairs
[题目] You are climbing a stair case. It takes n steps to reach to the top. Each time you can either c ...
- [leetcode 70]Climbing Stairs
You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...
- LeetCode 70. 爬楼梯(Climbing Stairs)
递归解法(超时): class Solution { public:int climbStairs(int n) {if(n == 1) return 1;if(n == 2) return 2;re ...
- LeetCode 70. Climbing Stairs
You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...
最新文章
- 人工神经网络在行人轨迹预测上的应用
- 织梦 m list.php tid,在织梦标签dede:list中增加noflag属性的方法支持5.7版本
- 执行目标文件引发的问题:syntax error: word unexpected (expe...
- Enterprise Architecture 13 将顺序图自动转化为协作图
- Linq中的Where与SkipWhile
- 【最短路】SDUT3034--炸学校
- HDU 4085 Steiner树模板称号
- hibernate.cfg.xml的一些事
- MOSS中代码运行的权限提升(半摘)
- mysql句式增删改,MySQL 增删改语句
- GridView 中取值的方法汇总
- 内地酒量排行榜山东居首 东北三省无一进前三
- 视觉SLAM十四讲 第9讲 后端1 贝叶斯法则 式9.5推导
- 机顶盒抓包(无法连接WIFI的设备)
- 腾讯、阿里、百度高工都点头称赞的“Redis 实战超全笔记”,不看你就亏大发了
- 如何先梳理业务逻辑再写代码
- 微软商店、应用、网站无法登录
- 【Android】实现九宫格展示图片+视频(仿QQ空间、微信朋友圈)
- 职场打拼的15个基本能力
- sql如何把一个数据库的表复制到另一个数据库中【转载】
热门文章
- vector删除第i个元素_[LeetCode] 215. 数组中的第K个最大元素
- 量子计算机多少量子,中国“夺回”量子霸权:世界上最快的量子计算机
- springboot 添加拦截器之后中文乱码_springboot中配置了拦截器后,拦截器无效的解决方案之一...
- linux配置英文,linux 系统配置命令(国外英文资料).doc
- Android图片褪色,Android – 使用Alpha褪色动画闪烁图片
- 计算机丢失faultrep.dll,faultrep.dll是什么文件?
- 用python写生日祝福的教程_祝豌豆生日快乐 - Python猫的个人空间 - OSCHINA - 中文开源技术交流社区...
- html5字体颜色自动转换,【转】js里alert里的字体颜色怎么设置:字体颜色方法;fontcolor(color)...
- 对python的认识800字_我对python里True和False的理解
- 排序只显示前5_Linux 文件大小统计与排序 du,df 和 sort!