class Solution {
public:
int uniquePaths(int m, int n) {
int dp[m][n];
//首先开辟dp数组 确定dp数组的含义 dp数组是到达某个位置的不同路径数
//确定递推公式 dp[i][j]=dp[i][j-1]+dp[i-1][j]
//初始化 ->结合实际情况 最后所有的递推会落脚在第一行和第一列
for(int j=0;j<n;j++){//行不变化 列发生变化 则初始化第一行
dp[0][j]=1;
}
for(int i=0;i<m;i++){//列不变化 行发生变化 则初始化第一列
dp[i][0]=1;
}
//确定遍历顺序->两者都可以->需要注意的是遍历开始的顺序
for(int i=1;i<m;i++){
for(int j=1;j<n;j++){
dp[i][j]=dp[i][j-1]+dp[i-1][j];
}
}
//dp进行打印debug
return dp[m-1][n-1];
}
};
LeetCode 62.unique-paths
最新推荐文章于 2025-08-05 19:50:13 发布