leetcode第62题

73 阅读1分钟
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。

问总共有多少条不同的路径?

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/unique-paths
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

根据题意,发现,每个盒子的路径等于它顶部的一个盒子加上它左边的一个盒子的求和。

image.png

还发现,其实第一行和第一列盒子的路径肯定是1

image.png

那么接下来就好办了,双层遍历剩下的部分填值就行了。下面贴上我在leetcode的代码

var uniquePaths = function(m, n) {
    let list = []

    for(let i = 0; i < m; i++) {
        // 第一列全为1
        list.push([1])
    }

    // for(let i = 0; i < m; i++) {
    //     list.push([])
    // }

    // // 第一列全为1
    // for(let i = 0; i < m; i++) {
    //     list[i][0] = 1
    // }

    // 第一行全为1
    for(let i = 0; i < n; i++) {
        list[0][i] = 1 // 行不变列变
    }

    for(let i = 1; i < m; i++){
        for(let j = 1; j < n; j++) {
            list[i][j] = list[i-1][j] + list[i][j-1]
        }
    }

    console.log(list)

    return list[m-1][n-1]
};

作者:hou-sheng-ren
链接:https://leetcode.cn/problems/unique-paths/solution/bu-tong-lu-jing-guan-cha-gui-lu-shuang-c-xz7r/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。