运用动态规划的思想,创建一个大小为N+1的数组来存放数据,可以保障数组不越界,
最终实现代码
class Solution {
public int waysToStep(int n) {
if(n==1||n==2) return n;
if(n==3) return 4;
int MOD = (int)1e9 + 7;
int[] dp = new int[n+1];
dp[1] = 1;
dp[2] = 2;
dp[3] = 4;
for(int i = 4;i <= n;i++) {
dp[i] = ((dp[i-1]+dp[i-2])%MOD+dp[i-3])%MOD;
}
return dp[n];
}
}