63. 不同路径 II
创始人
2024-02-11 03:24:32
0

题目

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

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

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

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

示例 1:


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


输入:obstacleGrid = [[0,1],[0,0]]
输出:1
 

提示:

m == obstacleGrid.length
n == obstacleGrid[i].length
1 <= m, n <= 100
obstacleGrid[i][j] 为 0 或 1

解:

这题就比62不同路径复杂一点,没有看过的小伙伴可以去看一下,这两题思路基本一致

(147条消息) 62. 不同路径_褚赢宇的博客-CSDN博客

思路还是与62一样的思路,但不同的是这题多了障碍物。所以和62相比有以下的不同:

(1)没有设障碍物的62题第一行和第一列的dp方法数全设为1,但要注意在这题当第一行或者第一列出现障碍物时,当前坐标dp数为0,其后的坐标dp数也应该设为0。如下图为例子,如果障碍物位于(0,1)和(1,0)两个坐标点,不仅仅要将(0,1)和(1,0)的dp数设为0,而且(0,2)(2,0)的dp都应该为0,因为根据规则第一行你只能从左边走来,这条路都封了后面自然也为0。第一列同理

(2)62题中动态规划转移方程为dp[i][j]=dp[i-1][j]+dp[i][j-1],这题也一样,不过要加个判断条件,判断这个点是否有障碍物,如果有这是不通的,就不用给它赋值,它为初始值0

class Solution {public int uniquePathsWithObstacles(int[][] obstacleGrid) {int m=obstacleGrid.length;//行数int n=obstacleGrid[0].length;//列数int [][]dp=new int[m][n];for(int i=0;i

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...