题目

解题思路
本道题是一道比较典型的动态规划题目,题目要我们求有几种方法可以到达楼顶,假设你每次只能走一个台阶或者两个台阶,那我们思路大概如下:
- 设置一个dp表,dp[i]表示第i个台阶有多少种方法可以到达,我们可以列出状态转移方程:dp[i]=dp[i-1]+dp[i-2]
- 边界的处理主要在当要爬的台阶小于2时
所以相关代码如下:
class Solution {
public:
int climbStairs(int n) {
if (n == 1)
return 1;
vector<int> nums{ 1,2 };
for (int i = 1; i < n-1; i++) {
nums.push_back(nums[i] + nums[i - 1]);
}
return nums.back();
}
};
694

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



