Climbing Stairs @python
题目分析:上楼梯问题,每次可上1或2个台阶,求出达到给定的层数有多少种方法。
示例:
Input: 2
Output: 2
Explanation: There are two ways to climb to the top.
1. 1 step + 1 step
2. 2 steps
Input: 3
Output: 3
注意:这道题不能用递归,会提示超时,所以需要想一个其他办法。
方法一:
思路:
(1)如果起始跳一阶的话,剩余的n-1阶就有 f(n-1) 种跳法;
(2)如果起始跳二阶的话,剩余的n-2阶就有 f(n-2) 种跳法;
所以f(n) = f(n-1) + f(n-2),实际结果即为斐波纳契数。
斐波那契数列:n=1–>1;n=2–>2 ;n=3–>n=1的结果+n=2的结果;n=4–>n=2的结果+n=3的结果;n=5–>n=3的结果+n=4的结果… …
该题应采用递归的逆向思维,从底层向上算。观察斐波那契数列得出的规律。
class Solution:def climbStairs(self, n):""":type n: int:rtype: int"""p,q=1,2if n<3:return nelse:for i in range(n-2):p,q=q,p+qreturn q
#Climbing Stairs
class Solution:def climbStairs(self, n):p,q =1,2if n<3:return nelse:for i in range(n-2):p,q = q, p+qreturn q
Climbing Stairs @python相关推荐
- 70. Climbing Stairs
70. Climbing Stairs 1. 题目 You are climbing a stair case. It takes n steps to reach to the top. Each ...
- 爬楼梯 · Climbing Stairs
[抄题]: 假设你正在爬楼梯,需要n步你才能到达顶部.但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? [思维问题]: 不知道一步.两步怎么加.还是用iteration迭代.此题公式可被 ...
- 【动态规划 斐波那切数列】LeetCode 746. Min Cost Climbing Stairs
LeetCode 746. Min Cost Climbing Stairs 本博客转载自:http://www.cnblogs.com/grandyang/p/8343874.html 存在无代价的 ...
- 【斐波那切数列】LeetCode 70. Climbing Stairs
LeetCode 70. Climbing Stairs 这是一道利用斐波那切数列求解的题目.求斐波那切数列有比较经典的4种方法 (1)递归法:复杂度太高 (2)迭代法:时间复杂度为O(n)O(n)O ...
- 算法:Climbing Stairs(爬楼梯) 6种解法
说明 算法:Climbing Stairs(爬楼梯) LeetCode地址:https://leetcode.com/problems/climbing-stairs/ 题目: You are cli ...
- [勇者闯LeetCode] 70. Climbing Stairs
[勇者闯LeetCode] 70. Climbing Stairs Description You are climbing a stair case. It takes n steps to rea ...
- 10.2 动态规划算法套路及空间优化 —— Climbing Stairs Unique Paths
这一篇文章从最简单的动态规划题目开始,结合上一节动态规划三要素,以LeetCode两道基础的DP题目阐述DP问题的基本套路解法. 70. Climbing Stairs You are climbin ...
- [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 Climbing Stairs
You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...
- LeetCode Climbing Stairs
You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...
最新文章
- Linux进程及进程管理命令
- elastic的gc相关
- Partition分区及实例
- 使用ISA Server发布具有Edge角色的Exchange Server环境
- 2017-9-14-Linux移植:加快Linux主机的启动速度
- oracle数据库并行数限制,Oracle数据库并行处理技术详解(上)
- 3.Android的新虚拟ART与原虚拟机DVM的区别
- Linux中ACL权限设置
- jquery中的ajax 网络请求
- 常见前端面试题及答案(下)
- Ubuntu 19.04 磁盘加密
- K线形态识别—K线反转形态之底部反转形态
- 让游戏沉浸感炸裂的实时3D音效技术原理与实践(上)
- 百家企业短信网关(背景及核心代码)-1-开源项目短信接口征集
- [生存志] 第59节 仲尼弟子座次
- 【爬虫——00004】蜘蛛技能学习
- 小白如何入门单片机?几个建议助你提高学习效率,把握学习方向
- 项目管理十大知识领域(八)--- 项目干系人管理(过程、输入、工具和技术、输出)
- LeetCode 725 分隔链表
- 小米路由器显示网络未连接到服务器,小米路由器4不能上网了如何解决?小米路由器4无法上网的解决方法汇总介绍...