leetcode 63. 不同路径 II

2023-11-13

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

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

现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?

网格中的障碍物和空位置分别用 1 和 0 来表示。

示例 1:

输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]
输出:2
解释:3x3 网格的正中间有一个障碍物。
从左上角到右下角一共有 2 条不同的路径:
1. 向右 -> 向右 -> 向下 -> 向下
2. 向下 -> 向下 -> 向右 -> 向右

 

class Solution:
    def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:
        # 构造一个DP table
        row = len(obstacleGrid)
        col = len(obstacleGrid[0])
        dp = [[0 for _ in range(col)] for _ in range(row)]
        #如果第一个格子没有石头 那就将情况置为1 如果有石头那就置为0
        dp[0][0] = 1 if obstacleGrid[0][0] != 1 else 0
        if dp[0][0] == 0: return 0  # 如果第一个格子就是障碍,return 0
        # 第一行
        for i in range(1, col):
            if obstacleGrid[0][i] != 1:
                dp[0][i] = dp[0][i-1]

        # 第一列
        for i in range(1, row):
            if obstacleGrid[i][0] != 1:
                dp[i][0] = dp[i-1][0]
        print(dp)

        for i in range(1, row):
            for j in range(1, col):
                if obstacleGrid[i][j] != 1:
                    dp[i][j] = dp[i-1][j] + dp[i][j-1]
        return dp[-1][-1]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

leetcode 63. 不同路径 II 的相关文章

随机推荐

  • C++ string类的实现

    个人简介 作者简介 大家好 我是菀枯 支持我 点赞 收藏 留言 格言 不要在低谷沉沦自己 不要在高峰上放弃努力 前言 在C语言中 没有专门用来表示字符串的类型 C语言的字符串是一系列以 0 为结尾的字符的集合 虽然C语言为这样的字符串提供了
  • vc++ 编写Windows服务 1053错误

    http xk861119 blog 163 com blog static 16327042010109102237317 建立一个服务程序的最简单的方法是用VC中的ATL COM向导 主菜单中选择新建 然后选Projects中的ATL
  • 京瓷6525_京瓷6525扫描怎么设置?

    本文中要用到的快捷键 Alt 一般为空格左侧第一个按键 Win 一般为空格左侧第二个按键 一般按键上标识为微软logo 一 桌面新建文件夹 名自定义 数字或字母 不能用汉字 例如我的 6525 右键属性 共享
  • php- 静态代码检测

    1 安装 PhpMetrics 可以直接 composer 全局安装 composer global require phpmetrics phpmetrics 安装完毕之后 可以这样来运行命令分析代码复杂度 phpmetrics repo
  • 关于在Unity 中动画的某一帧执行函数

    打开动画的inspector 选择Events 添加一个帧 然后再Function中输入你需要执行的函数名
  • ICS计算机系统大作业

    计算机系统 大作业 题 目 程序人生 Hello s P2P 专 业 计算机学院 学 号 120L020427 班 级 2003004 学 生 易焯平 指 导 教 师 史先俊 计算机科学与技术学院 2022年5月 摘 要 几乎全世界的程序员
  • 通俗理解PCA降维作用

    概述 本文主要介绍一种降维方法 PCA Principal Component Analysis 主成分分析 降维致力于解决三类问题 降维可以缓解维度灾难问题 降维可以在压缩数据的同时让信息损失最小化 理解几百个维度的数据结构很困难 两三个
  • Python设置excel单元格格式

    文章目录 xlwt 模块简介 设置数字的格式 设置字体 设置对齐方式 设置边框 设置 填充 设置保护 xlwt 模块简介 xlwt 是 python中一个用来操作 excel 文件的库 其中 封装了很多常用操作 本文主要讲解使用该库在生成e
  • elememt el-tree使用(样式修改+设置为单选,不含父节点)

    elememt el tree使用 样式修改 设置为单选 不含父节点 最近在使用element做练习 就单纯的想对使用的组件和功能做一下下记录 v 直接在elememt官网找自己想要使用的组件就好 html
  • 【算法提升】——中心扩散法(最长回文子串和回文子串)

    中心扩散法常用来解决回文子串的问题 如最长回文子串和回文子串的问题 最长回文子串 给你一个字符串 s 找到 s 中最长的回文子串 解题思路 从每一个位置确定回文子串中心点 回文子串向两边扩散的起始位置 向左右两边扩散进行比较 如果是 bab
  • LCD 亮度相关(背光) 正负压相关

    LCD 亮度相关 背光 kernel msm 3 18 drivers video msm mdss mdss fb c 调用led classdev register 注册lcd backlight sys class leds lcd
  • Lua的string和string库总结

    Lua有7种数据类型 分别是nil boolean number string table function userdata 这里我总结一下Lua的string类型和string库 复习一下 以便加深记忆 个人认为string是Lua编程
  • 全栈工程师的职业前景及就业环境情况说明

    本篇文章主要讲解全栈工程师的职业前景和就业趋势 作者 任聪聪 日期 2023年4月20日 全栈工程师顾名思义就是会一个技术栈领域的所有客户端技术 如web全栈即前后端技术栈都会的工程师 如web pc app都会的则也是全栈 大全栈 故此全
  • 网络---因特网的概述

    因特网的概述 网络 互联网 因特网 网络 许多计算机连接在一起 互联网 internet 许多网络连接在一起 因特网 全球最大的一个互联网 Internet和广域网 局域网 覆盖范围小 自己花钱买设备 带宽固定 10M 100M 1000M
  • 关于ER图和UML图之间的对比

    ER图与UML图 ER图 实体 联系图 Entity Relation Diagram 用来建立数据模型 在数据库系统概论中属于概念设计阶段 ER图提供了表示实体 即数据对象 属性和联系的方法 用来描述现实世界的概念模型 构成E R图的基本
  • React项目 加入 TS

    1 全局安装ts npm i g typescript 2 创建tsconfig json tsc init 修改tsconfig json 开启jsx和allowJs配置 3 安装开发环境依赖 npm install save dev t
  • 数据分析:Pandas之Series用法总结

    文章目录 Series 一 导入Series 二 创建Series 1 使用列表或者numpy进行创建 默认索引为0到N 1的整数型索引 2 使用字典创建 推荐使用 三 Series的索引和切片 1 显式索引与切片 2 隐式索引与切片 四
  • 域名系统由什么服务器组成,域名(DNS)的有那三个组成部分

    域名制度 域名 DNS 的有那三个组成部分 DNS由下面三个部分组成 域名空间和资源记录 域名空间是一个树状结构 资源记录是与名字相关的一些数据 从概念上说 每个结点和域名空间树的叶子结点都有一定的信息 而查询是要查询出一些与之相关的特定信
  • 辛普森悖论及贝叶斯解释

    辛普森悖论 Simpson s Paradox 亦有人译为辛普森诡论 为英国统计学家E H 辛普森 E H Simpson 于1951年提出的悖论 即在某个条件下的两组数据 分别讨论时都会满足某种性质 可是一旦合并考虑 却可能导致相反的结论
  • leetcode 63. 不同路径 II

    一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 Start 机器人每次只能向下或者向右移动一步 机器人试图达到网格的右下角 在下图中标记为 Finish 现在考虑网格中有障碍物 那么从左上角到右下角将会有多少条不同的路径