class Solution {
//DP fibonacci sequence
//alternative solution: matrix multiply for O(logn)
public:
int climbStairs(int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector<int> f(n+1);
f[0] = 1; f[1] = 1;
for (int i = 2; i <= n; ++i)
f[i] = f[i-1]+f[i-2];
return f[n];
}
};
second time;
class Solution {
public:
int climbStairs(int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(n == 0) return 1;
if(n == 1) return 1;
vector<int> f(n+1, 0);
f[0] = 1; f[1] = 1;
for(int i = 2; i <= n; ++i) f[i] = f[i-1]+f[i-2];
return f[n];
}
};
本文介绍了一个经典的动态规划问题——爬楼梯问题,并提供了一种使用动态规划解决该问题的方法。通过递推公式计算出爬到第n阶楼梯的不同方式的数量。
491

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



