动态规划——Climbing Stairs(easy,python)
来源:互联网 发布:nginx 限制ip访问次数 编辑:程序博客网 时间:2024/06/05 03:01
动态规划——Climbing Stairs(easy,python)
题目
n级台阶,一次跨1级台阶或者2级台阶,问最终能到有几种到达台阶顶的方案。
解析
当n<=0,0种方案,不需要走
当n = 1,1种方案,走一步上去
当n = 2,2种方案,一步一步 or 一下子两步
而对于第n级来说,假设n-1级,n-2级分别有 num[n-1],num[n-2], 则 n-1级到n级只能跨一级台阶,而n-2级到n级为了不重复,只能跨2级台阶,所以对于n级来说,有num[n-1]+num[n-2]种方案。
class Solution(object): def climbStairs(self, n): """ :type n: int :rtype: int """ if n <= 0: return 0 if n == 1: return 1 if n == 2: return 2 former_one_step = 2 former_two_step = 1 all_ways = 0 for i in range(2, n): all_ways = former_one_step + former_two_step former_two_step = former_one_step former_one_step = all_ways return all_ways
在LeetCode上看到的25ms的范例:
class Solution(object): def climbStairs(self, n): """ :type n: int :rtype: int """ if n == 1: return 1 if n == 2: return 2 list = [1,2] for i in range(2, n): list.append(list[i-2]+list[i-1]) return list[-1]
可以尝试用list做初始,在list后直接append,比多次计算快很多。
阅读全文
0 0
- 动态规划——Climbing Stairs(easy,python)
- 动态规划——70. Climbing Stairs[easy]
- LeetCode-70-Climbing Stairs(动态规划)-Easy
- 70. Climbing Stairs 类别:动态规划 难度:easy
- Leetcode解题笔记 70. Climbing Stairs [Easy] 动态规划
- Climbing Stairs爬楼梯——动态规划
- LeetCode Climbing Stairs(经典动态规划)
- 70. Climbing Stairs [easy] (Python)
- Leetcode 动态规划 Climbing Stairs
- 简单动态规划 climbing-stairs
- 70. Climbing Stairs(Easy)
- LeetCode 746. Min Cost Climbing Stairs(动态规划)
- Climbing Stairs 爬楼梯方法 动态规划
- [leetcode]climbing-stairs 动态规划 C++
- 【Leetcode】70. Climbing Stairs 【动态规划】
- 9.【动态规划】 Climbing Stairs --Accepted code
- 动态规划问题系统---climbing-stairs
- LeetCode 70. Climbing Stairs 动态规划问题
- 从C过渡到C++
- jdbc连接mysql入门程序
- Spring Cloud / Nodejs 混合微服务示例
- LINQ系列:Linq to Object串联操作符
- 噩梦射手(SurvivalShooter)教程(十一)
- 动态规划——Climbing Stairs(easy,python)
- 百度定位绘制轨迹
- 二十一、中介者模式——设计模式学习笔记
- 使用U盘安装windows系统教程
- C++实现日期类-Date
- C++ Primer 第16章 模板与泛型编程 学习笔记
- 翻转部分链表
- 数据库浅谈
- tableview 重用机制