class Solution {
public:
int climbStairs(int n) {
// 1 初始化数组
std::vector<int> f(n);
// 2 定义边界条件
if (n == 1)
{
return 1;
}
if (n == 2)
{
return 2;
}
f[0] = 1;
f[1] = 2;
// 3 状态转移方程
for (int i = 2; i < n; i++)
{
f[i] = f[i - 1] + f[i - 2];
}
// 4 找出结果
return f[n-1];
}
};
leetcode70假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
最新推荐文章于 2024-09-17 15:46:56 发布
这篇博客介绍了一个C++实现的经典动态规划问题——爬楼梯。代码中定义了一个名为`climbStairs`的函数,它通过初始化数组并设置边界条件来计算达到第n级楼梯的不同方式数。状态转移方程f[i] = f[i-1] + f[i-2]用于从之前的状态推导当前状态。最终返回f[n-1]作为结果。
摘要由CSDN通过智能技术生成