[Leetcode] Climbing Stairs
2014-10-03 05:36
162 查看
题目:
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?
思路:动态规划。
总结:注意压缩空间,每一个状态只和它的前两个状态相关。复杂度O(n).
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?
思路:动态规划。
class Solution { public: int climbStairs(int n) { vector<int> count(3); count[0] = 1; count[1] = 1; for (int i = 2; i <= n; ++i) { count[i%3] = count[(i-1)%3] + count[(i-2)%3]; } return count[n%3]; } };
总结:注意压缩空间,每一个状态只和它的前两个状态相关。复杂度O(n).
相关文章推荐
- LeetCode70 Climbing Stairs
- leetcode-Climbing Stairs
- [Leetcode] Climbing Stairs
- leetcode(20).70. Climbing Stairs
- LeetCode-70 Climbing Stairs(斐波那契数列)
- leetcode70——Climbing Stairs
- [LeetCode] Climbing Stairs
- 【LeetCode】Climbing Stairs
- LeetCode-Climbing Stairs
- leetcode由易入难——【3】Climbing Stairs
- LeetCode 70 — Climbing Stairs(C++ Java Python)
- leetcode Climbing Stairs
- LeetCode -- Climbing Stairs
- [LeetCode] Climbing Stairs, Solution
- LeetCode 70 Climbing Stairs(记忆化搜索)
- 【LeetCode】70 Climbing Stairs
- [LeetCode] Climbing Stairs
- leetcode-Climbing Stairs
- LeetCode Climbing Stairs 爬楼梯
- leetcode: Climbing Stairs