Python
# 写法1
class Solution:
def climbStairs(self, n: int) -> int:
if n == 1:
return 1
if n == 2:
return 2
pre1, pre2 = 1, 2
res = 0
while n >= 3:
res = pre1 + pre2
pre1, pre2 = pre2, res
n -= 1
return res
# 写法2
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;
}
}
本文介绍了一种用Java编写的Solution类,其中的climbStairs方法通过递归和动态规划算法计算给定台阶数n下的斐波那契数。该方法首先处理基础情况,然后通过循环更新pre0和pre1值来逐步逼近结果。
1118

被折叠的 条评论
为什么被折叠?



