【代码随想录】【动态规划】day39:不同路径

不同路径1

  # 机器人从(0,0)出发,到达(m-1,n-1)终点 一共有几种路径

        # 确定初始数组:dp二维数组  m行n列  表示到m行n列有几种路径
        dp=[[0] * n for _ in range(m)]

        dp[0][0]=1

        for i in range(m):
            dp[i][0]=1
        for j in range(n):
            dp[0][j]=1
        # dp[1][1]=2

        for i in range(1,m):
            for j in range(1,n):
                dp[i][j]=dp[i-1][j]+dp[i][j-1]


        return dp[m-1][n-1]

不同路径2

有障碍物版本

def uniquePathsWithObstacles(self, obstacleGrid):
        """
        :type obstacleGrid: List[List[int]]
        :rtype: int
        """

        m = len(obstacleGrid)  # 网格的行数
        n = len(obstacleGrid[0])  # 网格的列数

        if m <= 1 and n <= 1 :
            return 1 if obstacleGrid[0][0]==0 else 0
        if obstacleGrid[m - 1][n - 1] == 1 or obstacleGrid[0][0] == 1:
            # 如果起点或终点有障碍物,直接返回0
            return 0
        
        dp = [[0] * n for _ in range(m)]  # 创建一个二维列表用于存储路径数

        # 设置起点的路径数为1
        dp[0][0] = 1 if obstacleGrid[0][0] == 0 else 0

        # 初始化第一行和第一列的状态
        for i in range(1,m):
            if obstacleGrid[i][0]==1:
                continue
            # 第一行或第一列的状态也是由前一个状态决定的
            dp[i][0]=dp[i-1][0]
        
        for i in range(1,n):
            if obstacleGrid[0][i]==1:
                continue
            dp[0][i]=dp[0][i-1]

        for i in range(1,m):
            for j in range(1,n):
                if obstacleGrid[i][j]==1:
                    continue
                dp[i][j]=dp[i-1][j]+dp[i][j-1]

        return dp[m-1][n-1]

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-02 03:34:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-02 03:34:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-02 03:34:03       82 阅读
  4. Python语言-面向对象

    2024-04-02 03:34:03       91 阅读

热门阅读

  1. EMF相关学习文档

    2024-04-02 03:34:03       35 阅读
  2. web服务应用术语

    2024-04-02 03:34:03       40 阅读
  3. 阿里巴巴实习面经

    2024-04-02 03:34:03       42 阅读
  4. 竞赛常考的知识点大总结(二)基础算法

    2024-04-02 03:34:03       35 阅读
  5. vue3中computed详解

    2024-04-02 03:34:03       42 阅读
  6. vue——computed和methods的区别

    2024-04-02 03:34:03       30 阅读
  7. Vue 使用 array.flatMap()例子

    2024-04-02 03:34:03       33 阅读
  8. 远程过程调用-buttonrpc源码解析6-函数调用

    2024-04-02 03:34:03       37 阅读
  9. vue Props

    2024-04-02 03:34:03       32 阅读
  10. 【题解 | 01背包】分割等和子集

    2024-04-02 03:34:03       38 阅读
  11. nginx怎么配置https访问

    2024-04-02 03:34:03       31 阅读