【leetcode】62. 不同路径

40 阅读1分钟

leetcode-62.png

看图说话,到达红色方块的路径数是到达两个黄色方块路径之和,这个比较好理解,毕竟只能向右走,向下走。
由此可以推出转移方程代码:

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]
};