LeetCode解题报告 70. Climbing Stairs [easy]
2016-10-21 11:52
549 查看
题目描述
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?
解题思路
题目意思很好理解,一次只能上一个或者两个台阶,到达第n个台阶共有多少种方法?到达第n个台阶只有两种方法,从第n-1个台阶走一步上来,或者从第n-2个台阶走两步上来,这样第n个台阶的方法数就是第n-1个台阶的方法数加上第n-2个台阶的方法数。
用递归的方法会超时,这里用动态规划,时间复杂度是O(n)的。
代码如下:
class Solution { public: int climbStairs(int n) { vector<int>result(n+1); result[0]=1; result[1]=1; for (int i=2; i<=n; i++) { result[i]=result[i-1]+result[i-2]; } return result ; } };
相关文章推荐
- 【LeetCode】226.Invert Binary Tree(Easy)解题报告
- 【LeetCode】637.Average of Levels in Binary Tree(Easy)解题报告
- LeetCode解题报告 100. Same Tree [easy]
- 【LeetCode】9.Palindrome Number(Easy)解题报告
- 【LeetCode】189.Rotate Array(Easy)解题报告
- LeetCode解题报告 111. Minimum Depth of Binary Tree [easy]
- 【LeetCode】653.Two Sum IV - Input is a BST(Easy)解题报告
- 【LeetCode】243.Shortest Word Distance(Easy)解题报告
- 【LeetCode】14.Longest Common Prefix(Easy)解题报告
- 【LeetCode】217.Contains Duplicate(Easy)解题报告
- 【LeetCode】257.Binary Tree Paths(Easy)解题报告
- 【LeetCode】463.Island Perimeter(easy)解题报告
- 【LeetCode】412.Fizz Buzz(easy)解题报告
- LeetCode解题报告 383. Ransom Note [easy]
- 【LeetCode】27.Remove Element(Easy)解题报告
- 【LeetCode】118.Pascal's Triangle(easy)解题报告
- 【LeetCode】447.Number of Boomerangs(Easy)解题报告
- 【LeetCode】88.Merge Sorted Array(easy)解题报告
- 【LeetCode】26.Remove Duplicates from Sorted Array(Easy)解题报告
- 【LeetCode】53.Maximum Subarray(Easy)解题报告