当前位置: 首页 > article >正文

代码随想录 -- 动态规划 -- 不同路径 II

63. 不同路径 II - 力扣(LeetCode)

思路:

dp[i][j]含义:走到第(i,j)个格子有多少种方法。

递推公式:

  • 当网格中有障碍物时:此路不通,continue;
  • 当网格中没有障碍物时:dp[i][j]=dp[i-1][j]+dp[i][j-1]。

初始化:(一开始整个dp数组都初始化为0)

针对第一行第一列:

  • 如果没有遇到障碍物,初始化为1;
  • 如果遇到障碍物,直接break。

遍历顺序:从上到下,从左到右

class Solution(object):
    def uniquePathsWithObstacles(self, obstacleGrid):
        n=len(obstacleGrid)
        m=len(obstacleGrid[0])
        if obstacleGrid[0][0]==1 or obstacleGrid[n-1][m-1]==1:return 0
        dp=[[0 for _ in range(m)] for _ in range(n)]
        for i in range(n):
            if obstacleGrid[i][0]==0:
                dp[i][0]=1
            else:
                break
        for j in range(m):
            if obstacleGrid[0][j]==0:
                dp[0][j]=1
            else:
                break
        for i in range(1,n):
            for j in range(1,m):
                if obstacleGrid[i][j]==1:
                    continue
                else:
                    dp[i][j]=dp[i-1][j]+dp[i][j-1]
        return dp[n-1][m-1]


http://www.kler.cn/a/375056.html

相关文章:

  • 如何在 Ubuntu 22.04 上安装和使用 Composer
  • dify的ChatFlow自定义上传图片并通过HTTP请求到SpringBoot后端
  • C++版循环安全队列DequeBuffer
  • 注意力机制详解
  • 编译原理复习---正则表达式+有穷自动机
  • Scala项目(图书管理系统)
  • 给文件添加可读可写可执行权限
  • 15 Docker容器存储架构:docker存储驱动简介
  • 【计算机网络】关于信道
  • 20241028软考架构-------软考案例8答案
  • 迷茫内耗的一天
  • batc和mini-batch
  • 苹果开发 IOS 证书生成步骤
  • HT71672 13V,12A全集成同步升压转换器
  • Linux系统块存储子系统分析记录
  • stm32不小心把SWD和JTAG都给关了,程序下载不进去,怎么办?
  • CSS--导航栏案例
  • Python小白学习教程从入门到入坑------第十七课 内置函数拆包(语法基础)
  • 100种算法【Python版】第30篇——IDA*算法
  • Altium Designer使用技巧(一)
  • 向量数据库:PGVector 为AI知识库做准备
  • qt QRadioButton详解
  • 人工智能:改变未来生活与工作的无尽可能
  • 汽车免拆诊断案例 | 2010款起亚赛拉图车发动机转速表指针不动
  • Doris集群搭建
  • 服务器被攻击黑洞后如何自救