版权声明:自由转载-非商用-非衍生-保持署名 https://blog.csdn.net/mgsweet/article/details/78732154
解题思路
设v[i] 为到达第i层的方法数,则v[i] = v[i - 1] + v[i - 2]。到达第i层的方法数可能由第i-2层走两步或者从i-1层走一步,所以得出上式
代码
class Solution {
public:
int climbStairs(int n) {
vector<int> v(n + 1);
v[0] = 0;
v[1] = 1;
v[2] = 2;
for (int i = 3; i < n + 1; i++) {
v[i] = v[i - 2] + v[i - 1];
}
return v[n];
}
};