1.题目:
2.解析:
代码:
public int waysToStep(int n) {
/**
1.创建dp表
2.初始化
3.填表
4.返回值
*/
int MOD = (int)1e9 + 7;//注意不能超出int范围,每做一次操作要取模
//处理边界情况
if(n == 1 || n == 2) return n;
if(n == 3) return 4;
//1.创建dp表
int[] dp = new int[n+1];//0位置不算
//2.初始化
dp[1] = 1;dp[2] = 2;dp[3] = 4;
//3.填表
for(int i = 4; i <= n; i++)
dp[i] = ((dp[i-1] + dp[i-2]) % MOD + dp[i-3]) % MOD;
return dp[n];
}