目录
路径问题
1.第一题
画图分析
动态规划解题的几步
1.确定状态表示
根据经验+题目要求
dp[i][j]表示走到[i,j]位置时的不同路径数
2.状态转移方程
以当前[i,j]位置状态的最近一步来划分子问题,将每个子问题用状态表示,即表示为dp[x][y]
3.初始化
4.填表顺序
从上往下填写每一行,每一行从左往右
5.返回值 dp[m][n](最右下位置)
具体代码
int uniquePaths(int m, int n)
{
//1.创建dp表
//2.初始化
//3.填表
//4.返回值
vector<vector<int>>dp(m+1,vector<int>(n+1));
dp[0][1]=1;
for(int i=1;i<=m;++i)//从上往下遍历每一行
for(int j=1;j<=n;++j)//从左往右填写每一列
dp[i][j]=dp[i-1][j]+dp[i][j-1];
return dp[m][n];
}
2.第二题
画图分析:
使用动态规划来解决
1.确定状态表示
和上题一样dp[i][j]表示走到[i,j]位置时的不同路径数
2.状态转移方程