问题:
假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?
样例:
Example 1: Input: n = 3 Output: 3 Explanation: 1) 1, 1, 1 2) 1, 2 3) 2, 1 total 3. Example 2: Input: n = 1 Output: 1 Explanation: only 1 way.
python:
class Solution:
"""
@param n: An integer
@return: An integer
"""
def climbStairs(self, n):
# write your code here
if n <= 2:
return n
last = 1;
cur = 2;
for i in range(n-2):
cur, last = last + cur, cur
return cur
C++:
class Solution {
public:
/**
* @param n: An integer
* @return: An integer
*/
int climbStairs(int n) {
// write your code here
if(n<=2)
{
return n;
}
int last = 1;
int cur = 2;
for (int i = 2; i<n;i++) {
int temp = cur;
cur = cur + last;
last = temp;
}
return cur;
}
};