欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

牛客网_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