牛客网_leetcode_unique-paths-ii(动态规划)
程序员文章站
2022-07-12 12:39:29
...
题目描述
继续思考题目"Unique Paths":
如果在图中加入了一些障碍,有多少不同的路径?
分别用0和1代表空区域和障碍
例如
下图表示有一个障碍在3*3的图*。
[
[0,0,0],
[0,1,0],
[0,0,0]
]
有2条不同的路径
备注:m和n不超过100.
解答:先上代码:
#
#
# @param obstacleGrid int整型二维数组
# @return int整型
#
class Solution:
def uniquePathsWithObstacles(self , obstacleGrid ):
# write code here
m = len(obstacleGrid)
n = len(obstacleGrid[0])
for i in range(m):
for j in range(n):
obstacleGrid[i][j] = 1 - obstacleGrid[i][j]
for i in range(1, m):
for j in range(1, n):
obstacleGrid[i][j] = (obstacleGrid[i-1][j] + obstacleGrid[i][j-1])*(obstacleGrid[i][j])
return obstacleGrid[-1][-1]
这道题,思路就是这么个思路,碰上障碍点,直接把障碍处的值置零,以上代码通过了60%的测试案例,但是leetcode吧有个问题,总是考虑极端情况,他设置obstacleGrid为[[1,0]],结果答案直接为0,这就不是考算法了,就有点钻牛角尖的感觉了,思路没有问题,这道题就这样了。
上一篇: 【动态规划】LeetCode 63. Unique Paths II
下一篇: 621. 任务调度器