115. 不同的路径 II
115. 不同的路径 II
中文English
样例
Example 1:
Input: [[0]]
Output: 1
Example 2:
Input: [[0,0,0],[0,1,0],[0,0,0]]
Output: 2
Explanation:
Only 2 different path.
注意事项
m 和 n 均不超过100
输入测试数据 (每行一个参数)如何理解测试数据?
class Solution: """ @param obstacleGrid: A list of lists of integers @return: An integer """ """ 大致思路: 1.确定状态 最后一步:dp[i - 1][j - 1] 子问题:dp[i][j] = dp[i - 1][j] + dp[i][j - 1] 2.转移方程 3.初始条件和边界情况 l_x = len(obstacleGrid) l_y = len(obstacleGrid[0]) dp = [[0]*l_y for _ in len(obs)*l_x] 如果是障碍物 dp[i][j] = 0 对于边界情况 1.比如[0][0],dp[0][0] = 1 2.对于i = 0,则也为dp[0][j] = 1,如果当前是障碍物,则后面均为0,直接break即可 3.对于j = 0,同上 对于不是边界情况: 如果当前是障碍物: dp[i][j] = 0 continue 继续处理下一个 dp[i][j] = dp[i - 1][j] + dp[i][j - 1] 4.计算顺序 内外循环 """ def uniquePathsWithObstacles(self, obstacleGrid): # write your code here if not obstacleGrid:return 0 #初始化 l_x = len(obstacleGrid) l_y = len(obstacleGrid[0]) dp = [[0]*l_y for _ in range(l_x)] dp[0][0] = 1 for index in range(l_y): if obstacleGrid[0][index] == 1: break dp[0][index] = 1 for index in range(l_x): if obstacleGrid[index][0] == 1: break dp[index][0] = 1 #计算顺序 for i in range(1,l_x): for j in range(1,l_y): if (obstacleGrid[i][j] == 1): dp[i][j] = 0 continue dp[i][j] = dp[i - 1][j] + dp[i][j - 1] return dp[l_x - 1][l_y - 1]
相关推荐
- Linux/Ubuntu http://mirrors.163.com/ubuntu-releases/18.10/ Ubuntu 18.04 Server 版安装过程图文详解 ubuntu16.04配置网卡 Ubuntu 18.04 网卡配置IP ubuntu18.04修改网卡名称为eth0 Ubuntu18.04配置静态ip遇到的报错 ubuntu18.04安装gitlab-ee11.4.6及简单学习(一) 在Ubuntu18.04安装gitlab国内镜像加速 ubuntu系统中修改hosts配置 Ubuntu使用root帐号,并让Xshell, Winscp以root身份登录 windows下连接gitlab ubuntu 16.04如何生成ssh key以及如何查看ssh key windows下连接gitlab git mingw64 界面直接进入 输入的windows路径 Git -- 如何删除本地仓库 git版本控制器常用命令 Git提交代码的流程 git 为不同的项目设置不同的用户
- hadoop启动后,jps命令后发现nodename启动失败,检查日志报错:FSNamesystem initialization failed dfs.name.dir是NameNode持久存储名字空间及事务日志的本地文件系统路径。当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。 dfs.data.dir是DataNode存放块数据的本地文件系统路径,逗号分割的列表。当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。 dfs.replication是数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错。 注意:此处的name1、name2、data1、data2目录不能预先创建,hadoop格式化时会自动创建,如果预先创建反而会有问题。 dfs.name.dir是NameNode持久存储名字空间及事务日志的本地文件系统路径。当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。
- 几种不同的多路径软件查看多路径状态的步骤
- 202007leetcode刷题记录 32. 最长有效括号 35. 搜索插入位置 62. 不同路径 63. 不同路径 II 64. 最小路径和 104. 二叉树的最大深度 108. 将有序数组转换为二叉搜索树 112. 路径总和 120. 三角形最小路径和 167. 两数之和 II - 输入有序数组 268. 缺失数字 309. 最佳买卖股票时机含冷冻期 315. 计算右侧小于当前元素的个数 329. 矩阵中的最长递增路径 343. 整数拆分 349. 两个数组的交集 350. 两个数组的交集 II 378. 有序矩阵中第K小的元素 392. 判断子序列 410. 分割数组的最大值 718. 最长重复子数组 785. 判断二分图 1025. 除数博弈 剑指 Offer 11. 旋转数组的最小数字 面试题 08.03. 魔术索引 面试题 16.11. 跳水板 面试题 17.13. 恢复空格
- 高手请听题:错误提示中的路径a.b.Class与a/b/Class 有什么不同
- 相同域名不同端口的两个应用,cookie名字、路径都相同的情况下,后面cookie会覆盖前面cookie吗
- tomcat下同一个应用经过不同路径加载为两个应用时的陷阱
- Quartus II 11.0破发点(不同的是低版本号)
- 好奇怪哦,vc6,Project->setting->link下的Output file name下添的路径中的斜杠为何是反的?和普通路径的斜杠不同的?该怎么处理
- 剑指offer(一) 剑指 Offer 03. 数组中重复的数字 剑指 Offer 04. 二维数组中的查找 剑指 Offer 05. 替换空格 剑指 Offer 06. 从尾到头打印链表 剑指 Offer 07. 重建二叉树 剑指 Offer 09. 用两个栈实现队列 剑指 Offer 10- I. 斐波那契数列 剑指 Offer 10- II. 青蛙跳台阶问题 剑指 Offer 11. 旋转数组的最小数字 剑指 Offer 12. 矩阵中的路径 剑指 Offer 13. 机器人的运动范围 剑指 Offer 14- I. 剪绳子 剑指 Offer 14- II. 剪绳子 II 剑指 Offer 15. 二进制中1的个数 剑指 Offer 16. 数值的整数次方 剑指 Offer 17. 打印从1到最大的n位数 剑指 Offer 18. 删除链表的节点 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 剑指 Offer 22. 链表中倒数第k个节点 剑指 Offer 24. 反转链表 剑指
- Spark 配置整理
- Python3的日期和时间 python 中处理日期时间数据通常使用datetime和time库 datetiem库的使用方法,以及常用函数