看图说话,到达红色方块的路径数是到达两个黄色方块路径之和,这个比较好理解,毕竟只能向右走,向下走。
由此可以推出转移方程代码:
dp[i][j] = dp[i][j - 1] + dp[i - 1][j]
然后初始化刚开始的状态就好
var uniquePaths = function (m, n) {
// 初始化二维数组都为1
// 其实可以初始化dp[0][0] dp[0][1] dp[1][0]即可
let dp = Array.from({ length: m }, () => Array(n).fill(1))
for (let i = 1; i < m; ++i) {
for (let j = 1; j < n; ++j) {
dp[i][j] = dp[i][j - 1] + dp[i - 1][j]
}
}
return dp[m - 1][n - 1]
};