力扣-动态规划-62 不同路径
思路
- dp数组定义:到达i,j的路径为dp[i][j] 条
- 递推公式:dp[i][j] = dp[i][j - 1] + dp[i - 1][j]
- dp数组初始化:dp[1][1] = 1
- 遍历顺序:先m后n,从小到大,由于要知道i,j的左边和上边
- 时间复杂度:
代码
class Solution {
public:
int uniquePaths(int m, int n) {
vector<vector<int>> dp(m + 1, vector<int>(n + 1, 0));
dp[1][1] = 1;
for (int i = 1; i <= m; i++) {
for (int j = 1; j <= n; j++) {
if (i == 1 && j == 1) {
continue;
} else {
dp[i][j] = dp[i][j - 1] + dp[i - 1][j];
}
}
}
return dp[m][n];
}
};