思路:为了爬到n层楼梯,有两个选择,在n-1阶前进1步 or 在 n-1阶前进2步,即f(n) = f(n-1) + f(n-2)
class Solution {
public:
int climbStairs(int n) {
int prev = 0;
int cur = 1;
for(int i=1; i<=n; i++)
{
int tmp = cur;
cur += prev;
prev = tmp;
}
return cur;
}
};
思路:为了爬到n层楼梯,有两个选择,在n-1阶前进1步 or 在 n-1阶前进2步,即f(n) = f(n-1) + f(n-2)
class Solution {
public:
int climbStairs(int n) {
int prev = 0;
int cur = 1;
for(int i=1; i<=n; i++)
{
int tmp = cur;
cur += prev;
prev = tmp;
}
return cur;
}
};
限制编辑
假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意
题目描述 这一节我们需要讨论的是一个递推的问题。在海贼理工学院有一个路飞君,他在爬楼梯的时候从来都是要么上 2 个台
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M