题解 | 不同路径的数目(一)
不同路径的数目(一)
https://www.nowcoder.com/practice/166eaff8439d4cd898e3ba933fbc6358
#include <vector>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param m int整型
* @param n int整型
* @return int整型
*/
int uniquePaths(int m, int n) {
// write code here
vector<vector<int>> dp(m, vector<int> (n, 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-1][n-1];
}
};
递推关系:
dp[i][j]表示从(0, 0)位置到(i, j)位置总共有多少条路径
dp[i][j] = dp[i-1][j] + dp[i][j-1]
要么从左边节点到达当前节点,要么从上方节点到达当前节点
初始化:
i = 0 or j = 0时有且仅有一条路径
遍历顺序:
i j 都从小到大遍历
推荐代码随想录讲解的dp
Day2

