LeetCode——Climbing Stairs
2015-12-31 13:34
696 查看
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?
原题链接:https://oj.leetcode.com/problems/climbing-stairs/
题目:你在爬楼梯。
须要 n 步才干到顶部。
每次你爬1 或 2 步。
有多少种独立的爬到顶部的方式?
思路:首先非常easy就想到了递归的解法。可是超时了。
所以採用非递归的方式。事实上此题类似于求斐波那契数列的和,可是递归不仅慢还可能溢出。以下採用非递归的方法,当中pre代表前n-1台阶的方法数,current代表第n台阶的方法数。
Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?
原题链接:https://oj.leetcode.com/problems/climbing-stairs/
题目:你在爬楼梯。
须要 n 步才干到顶部。
每次你爬1 或 2 步。
有多少种独立的爬到顶部的方式?
思路:首先非常easy就想到了递归的解法。可是超时了。
public int climbStairs(int n) { if(n < 0) return 0; if(n <= 1) return 1; return climbStairs(n - 1) + climbStairs(n - 2); }
所以採用非递归的方式。事实上此题类似于求斐波那契数列的和,可是递归不仅慢还可能溢出。以下採用非递归的方法,当中pre代表前n-1台阶的方法数,current代表第n台阶的方法数。
public int climbStairs(int n) { if (n == 0 || n == 1) return 1; int pre = 1; int current = 1; for (int i = 2; i <= n; i++) { int temp = current + pre; pre = current; current = temp; } return current; }
相关文章推荐
- Scatterlist chaining
- hdu1022Train Problem I(栈-STL)
- Daily Scrum- 12/31
- 百度地图报libBaiduMapSDK_v3_2_0_15.so相关的错
- opencv_traincascade.exe文件结构解析
- 错误 -- Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
- screen.availWidth and screen.height
- constraint用法总结 II
- constraint用法总结 I
- C语言内存的动态存储管理4-边界标识法http://blog.csdn.net/hbuxiaoshe/article/details/5998538
- MFC里面CString 与 string 互相转化 的问题。_基础类_VC/MFC-ITnose http://www.itnose.net/detail/6110703.html
- strong/weak/assign/copy/retain
- TurboMail邮件服务器邮件群发实用技巧
- Exception in thread "ContainerBackgroundProce
- 理解 retain 、copy 、NSMutableString 、NSString 的用法
- LeetCode Container With Most Water
- LeetCode: 008-Contains Duplicate
- UVa 10976 Fractions Again?!(分数拆分)
- ArcGIS Server:Service failed to start
- 2014 Multi-University Training Contest 1 - J Rating