假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数。
示例 1:
输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶
c++
class Solution {
public:
int climbStairs(int n) {
int p = 0, q = 0, r = 1;
for (int i = 1; i <= n; ++i) {
p = q;
q = r;
r = p + q;
}
return r;
}
};
class Solution{
public:
int climbStairs(int n){
int p=0,q=0,r=1;
for(int i =1,i<=n; ++i){
p = q;
q =r;
r = p+q;
}
return r;
}
};
java
class Solution:
def climbStairs(self, n: int) -> int:
if n<=2:return n
f_1, f_2 = 1, 2
f = 0
for i in range(2, n):
f = f_1 + f_2
f_1 = f_2
f_2 = f
return f
Python
class Solution:
def climbStairs(self, n: int) -> int:
if n<=2:return n
f_1, f_2 = 1, 2
f = 0
for i in range(2, n):
f = f_1 + f_2
f_1 = f_2
f_2 = f
return f
class Solution:
def climbStairs(self,n: int) -> int:
if n<=2: return n
f_1, f_2 =1,2
f =0
for i in range(2,n):
f = f_1 +f_2
f_1 =f_2
f_2 = f
return f
class Solution:
def climbStairs(self,n: int) -> int:
if n<=2: return n
f_1 ,f_2 = 1,2
f =0
for i in range(2,n):
f =f_1 +f_2
f_1 =f_2
f_2 = f
return f



