dp问题描述
确定本题的状态表示
dp[n]表示的是n阶台阶的楼梯的上楼方式总数
确定本题的状态转移方程
根据已知条件:dp[0]=1,dp[1]=1,dp[2]=2,dp[3]=4
本题的状态转移方程是:dp[i]=dp[i-1]+dp[i-2]+dp[i-3]
填表求值
根据初始条件和状态转移方程,确定填表顺序,进而逐步填满dp表,最终返回题目要的结果
代码实现
class Solution {
public:
int waysToStep(int n) {
if(n==0) return 1;
else if(n==1)return 1;
else if(n==2) return 2;
// 创建dp数组
vector<long long> dp(n+1);
// 确定初始条件
dp[0]=1;dp[1]=1;dp[2]=2;
for(int i=3;i<=n;i++){
dp[i]=(dp[i-1]+dp[i-2]+dp[i-3])% 1000000007;
}
return dp[n];
}
};

1056

被折叠的 条评论
为什么被折叠?



