Leetcode-Climbing Stairs
来源:互联网 发布:铜仁家长网校软件下载 编辑:程序博客网 时间:2024/06/05 16:10
Problem
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?
Note: Given n will be a positive integer.
Example 1:
Input: 2
Output: 2
Explanation: There are two ways to climb to the top.
- 1 step + 1 step
- 2 steps
Example 2:
Input: 3
Output: 3
Explanation: There are three ways to climb to the top.
- 1 step + 1 step + 1 step
- 1 step + 2 steps
- 2 steps + 1 step
具体详见Leetcode
Analysis
爬一个n阶的楼梯,因为每次的选择是可以爬一阶或者爬两阶,所以爬 到n阶只能通过n-1阶楼梯爬一阶或者n-2阶爬两阶达到。
所以设
则状态方程是
然后有递归和递推两种方法计算
Code
class Solution {public: int climbStairs(int n) { int* array = new int[n+1]; array[0] = 0; array[1] = 1; if (n == 1) return 1; array[2] = 2; if (n == 2) return 2; for (int i = 3; i <= n; i++) { array[i] = array[i-1] + array[i-2]; } int answer = array[n]; delete []array; return answer; }};
Complexity
时间复杂度:
空间复杂度:
- LeetCode: Climbing Stairs
- LeetCode: Climbing Stairs
- [LeetCode]Climbing Stairs
- LeetCode Climbing Stairs
- [Leetcode] Climbing Stairs
- Leetcode: Climbing stairs
- LeetCode Climbing Stairs
- [LeetCode] Climbing Stairs
- leetcode 107: Climbing Stairs
- [LeetCode] Climbing Stairs
- [LeetCode]Climbing Stairs
- [leetcode]Climbing Stairs
- LeetCode-Climbing Stairs
- [leetcode] Climbing Stairs
- LeetCode - Climbing Stairs
- LeetCode:Climbing Stairs
- Leetcode Climbing Stairs
- LeetCode | Climbing Stairs
- Linux中的数据库Mysql
- C#个人重构之修改密码
- 如何破坏单例模式?
- Retrofit多线程下载
- Atom利器-markdown图床搭建
- Leetcode-Climbing Stairs
- css3动画实现loading
- 数据库视频(第一至五章)
- 用canvas画转动的阴阳鱼
- Oracle 开启归档日志以及关闭归档日志
- 窗口2
- 搭建Hadoop开发环境
- Linux常见命令使用
- 【JavaEE学习笔记】注解