Python
class Solution:
def climbStairs(self, n: int) -> int:
if n == 1:
return 1
pre1 = 1
pre2 = 2
ans = pre2
for i in range(3, n+1):
ans = pre1 + pre2
pre1 = pre2
pre2 = ans
return ans
Java
法1:dp
相当于计算斐波那契数列
class Solution {
public int climbStairs(int n) {
if (n == 1) {
return 1;
}
if (n == 2) {
return 2;
}
int pre0 = 1, pre1 = 2, res = 0;
while (n - 2 > 0) {
res = pre0 + pre1;
pre0 = pre1;
pre1 = res;
--n;
}
return res;
}
}