题目分析:上楼梯问题,每次可上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相关推荐

  1. 70. Climbing Stairs

    70. Climbing Stairs 1. 题目 You are climbing a stair case. It takes n steps to reach to the top. Each ...

  2. 爬楼梯 · Climbing Stairs

    [抄题]: 假设你正在爬楼梯,需要n步你才能到达顶部.但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? [思维问题]: 不知道一步.两步怎么加.还是用iteration迭代.此题公式可被 ...

  3. 【动态规划 斐波那切数列】LeetCode 746. Min Cost Climbing Stairs

    LeetCode 746. Min Cost Climbing Stairs 本博客转载自:http://www.cnblogs.com/grandyang/p/8343874.html 存在无代价的 ...

  4. 【斐波那切数列】LeetCode 70. Climbing Stairs

    LeetCode 70. Climbing Stairs 这是一道利用斐波那切数列求解的题目.求斐波那切数列有比较经典的4种方法 (1)递归法:复杂度太高 (2)迭代法:时间复杂度为O(n)O(n)O ...

  5. 算法:Climbing Stairs(爬楼梯) 6种解法

    说明 算法:Climbing Stairs(爬楼梯) LeetCode地址:https://leetcode.com/problems/climbing-stairs/ 题目: You are cli ...

  6. [勇者闯LeetCode] 70. Climbing Stairs

    [勇者闯LeetCode] 70. Climbing Stairs Description You are climbing a stair case. It takes n steps to rea ...

  7. 10.2 动态规划算法套路及空间优化 —— Climbing Stairs Unique Paths

    这一篇文章从最简单的动态规划题目开始,结合上一节动态规划三要素,以LeetCode两道基础的DP题目阐述DP问题的基本套路解法. 70. Climbing Stairs You are climbin ...

  8. [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 ...

  9. LeetCode Climbing Stairs

    You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...

  10. LeetCode Climbing Stairs

    You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...

最新文章

  1. Linux进程及进程管理命令
  2. elastic的gc相关
  3. Partition分区及实例
  4. 使用ISA Server发布具有Edge角色的Exchange Server环境
  5. 2017-9-14-Linux移植:加快Linux主机的启动速度
  6. oracle数据库并行数限制,Oracle数据库并行处理技术详解(上)
  7. 3.Android的新虚拟ART与原虚拟机DVM的区别
  8. Linux中ACL权限设置
  9. jquery中的ajax 网络请求
  10. 常见前端面试题及答案(下)
  11. Ubuntu 19.04 磁盘加密
  12. K线形态识别—K线反转形态之底部反转形态
  13. 让游戏沉浸感炸裂的实时3D音效技术原理与实践(上)
  14. 百家企业短信网关(背景及核心代码)-1-开源项目短信接口征集
  15. [生存志] 第59节 仲尼弟子座次
  16. 【爬虫——00004】蜘蛛技能学习
  17. 小白如何入门单片机?几个建议助你提高学习效率,把握学习方向
  18. 项目管理十大知识领域(八)--- 项目干系人管理(过程、输入、工具和技术、输出)
  19. LeetCode 725 分隔链表
  20. 小米路由器显示网络未连接到服务器,小米路由器4不能上网了如何解决?小米路由器4无法上网的解决方法汇总介绍...

热门文章

  1. Usage of #pragma
  2. java怎么用一行代码初始化ArrayList
  3. python模块paramiko与ssh
  4. 配置zabbix当内存剩余不足10%的时候触发报警
  5. 代码回滚:Reset、Checkout、Revert的选择(转)
  6. mybatis同时查询未知个数的表中数据(表名做为参数传递,联合查询union)
  7. PRD 如何编写好的需求文档
  8. Node.js开发指南中的例子(mysql版)
  9. Weblogic 9.2 for Linux AS4u5安装配置
  10. Ubuntu Linux系统备份与还原命令技巧