一个小孩爬一个 n 层台阶的楼梯。他可以每次跳 1 步, 2 步 或者 3 步。实现一个方法来统计总共有多少种不同的方式爬到最顶层的台阶。
样例
Example 1:
Input: 3
Output: 4
Explanation: 1 + 1 + 1 = 2 + 1 = 1 + 2 = 3 = 3 , there are 4 ways.
Example 2:
Input: 4
Output: 7
Explanation: 1 + 1 + 1 + 1 = 1 + 1 + 2 = 1 + 2 + 1 = 2 + 1 + 1 = 2 + 2 = 1 + 3 = 3 + 1 = 4 , there are 7 ways.
说明
对于n=0,我们认为答案是1。
class Solution {
public:
/**
* @param n: An integer
* @return: An Integer
*/
int climbStairs2(int n) {
// write your code here
std::vector<long long> result ;
result.push_back(1);
result.push_back(1);
result.push_back(2);
if(n>=3)
{
for ( int i=3; i <= n; i++) {
/* code */
result.push_back(result[i-1]+result[i-2]+result[i-3]);
}
return result[n];
}
return result[n];
}
};```