美文网首页
LeetCode 62. 不同路径

LeetCode 62. 不同路径

作者: 草莓桃子酪酪 | 来源:发表于2022-07-22 11:31 被阅读0次
题目

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?

例:
输入:m = 3, n = 7
输出:28

方法:动态规划
  • dp 记录机器人到达该网格的不同路径的数量,初始值均为零
  • 因为机器人每次只能向下或向右移动一步,那么机器人到达第一行和第一列的任意位置的路径均只有一条,所以将 dp[i][0] 和 dp[0][i] 赋值 1
  • 循环遍历除了第一行和第一列的每个网格。我们通过找规律可知到达每个非第一行和第一列的网格的路径数量均为到达其左边网格的路径数量加上到达其上边网格的路径数量
  • 最终返回右下角网格的路径数量
class Solution(object):
    def uniquePaths(self, m, n):
        dp = [[0 for col in range(n)] for row in range(m)]
        for i in range(m):
            dp[i][0] = 1
        for i in range(n):
            dp[0][i] = 1
        for i in range(1, n):
            for j in range(1, m):
                    dp[j][i] = dp[j][i-1] + dp[j-1][i]
        return dp[m-1][n-1]

优化: 因为所有网格的最小路径数量为一,那么初始化时可以从零变成一,从而减少之后的对第一行和第一列的赋值

class Solution(object):
    def uniquePaths(self, m, n):
        dp = [[1 for col in range(n)] for row in range(m)]
        for i in range(1, n):
            for j in range(1, m):
                    dp[j][i] = dp[j][i-1] + dp[j-1][i]
        return dp[m-1][n-1]
参考

代码相关:https://programmercarl.com/0062.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84.html

相关文章

  • 每日一题20201123(62. 不同路径)

    62. 不同路径[https://leetcode-cn.com/problems/unique-paths/] 思路

  • 【Leetcode】62. 不同路径

    作者: 码蹄疾毕业于哈尔滨工业大学。 小米广告第三代广告引擎的设计者、开发者;负责小米应用商店、日历、开屏广告业务...

  • LeetCode 62. 不同路径

    题目 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下...

  • leetcode 62. 不同路径

    题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向...

  • LeetCode 62. 不同路径

    题目 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下...

  • leetcode题目62. 不同路径

    题目描述 链接:https://leetcode-cn.com/problems/unique-paths/[ht...

  • LeetCode 力扣 62. 不同路径

    题目描述(中等难度) 机器人从左上角走到右下角,只能向右或者向下走。输出总共有多少种走法。 解法一 递归 求 ( ...

  • 刷题-leetcode:62. 不同路径

    题目地址:https://leetcode-cn.com/problems/unique-paths/ 一个机器人...

  • 62.不同路径

    ···/* 假设把向下表示为A,向右表示为B,则问题可以视为m-1个A元素和n-1个B元素的排列总和,因此使用计算...

  • 62.不同的路径

    题目 机器人位于一个m*n网络的左上角,在(0,0)位置start,机器人每次只能向下或者向右移动一步。机器人视图...

网友评论

      本文标题:LeetCode 62. 不同路径

      本文链接:https://www.haomeiwen.com/subject/uivvvrtx.html