leetCode.62 - 不同路径

作者: 半亩房顶 | 来源:发表于2019-03-19 23:09 被阅读0次

题目

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


思路

这里说两种解法:

1、数学思维,排列组合

一共需要走m + n - 2步,其中,m - 1 往右,所以问题转化为求如下图中式子的值:


2、动态规划

初始第一行全为1,第二行第一个为1,意指到达这些位置的路径只有一种,然后第二行 i 位置的数据由第一行 i 位置的路径数 + 第二行 i-1位置的路径数获得

代码

排列组合

class Solution:
    def uniquePaths(self, m: int, n: int) -> int:
        n,m=max(m,n),min(m,n)
        
        mult_1=1
        for i in range(n,n+m-1):
            mult_1*=i
        mult_2=1
        for i in range(1,m):
            mult_2*=i
            
        return int(mult_1/mult_2)

动态规划

class Solution:
    def uniquePaths(self, m: int, n: int) -> int:
        row1 = [1 for i in range(m)]
        row_num=1
        while(row_num<n):
            row2 = [1]
            for i in range(1,m):
                row2.append(row2[i-1]+ row1[i])
            row1 = row2
            row_num+=1
        return row1[-1]

欢迎大家关注我的公众号


半亩房顶

相关文章

  • leetCode.62 - 不同路径

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

  • 不同路径

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

  • 不同的路径

    LeetCode题目链接有一个机器人的位于一个 m × n 个网格左上角。机器人每一时刻只能向下或者向右移动一步。...

  • 不同路径

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

  • 不同路径

    题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/uniq...

  • 不同路径

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

  • 不同路径

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

  • 不同路径

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

  • 关于URL路径

    ajax 发请求时,所带的路径可以是绝对路径也可以是相对路径,不同的路径浏览器会有不同的拼接方式 当请求路径为相对...

  • Python小白 Leetcode刷题历程 No.61-N

    Python小白 Leetcode刷题历程 No.61-No.65 旋转链表、不同路径、不同路径Ⅱ、最...

网友评论

    本文标题:leetCode.62 - 不同路径

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