方法一:
动态规划:
注意取模:
注意vector元素类型
class Solution {
public:
int waysToStep(int n) {
if(n==1){
return 1;
}
if(n==2){
return 2;
}
if(n==3){
return 4;
}
vector<long> vec(n+1,0);
vec[0]=0;
vec[1]=1;
vec[2]=2;
vec[3]=4;
for(int i=4;i<n+1;i++){
vec[i]=(vec[i-1]+vec[i-2]+vec[i-3])%(1000000007);
}
return vec[n];
}
};
class Solution {
public:
int waysToStep(int n) {
if(n<3){
return n;
}
long a=1;
long b=2;
long c=4;
for(int i=4;i<n+1;i++){
long temp=(a+b+c)%(1000000007);
a=b;
b=c;
c=temp;
}
return c;
}
};