LeetCode 63. Unique Paths II (Python)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Lu_gee/article/details/76944370

题目描述:
Follow up for “Unique Paths”:

Now consider if some obstacles are added to the grids. How many unique paths would there be?

An obstacle and empty space is marked as 1 and 0 respectively in the grid.

For example,
There is one obstacle in the middle of a 3x3 grid as illustrated below.

[ [0,0,0], [0,1,0], [0,0,0] ]

The total number of unique paths is 2.

Note: m and n will be at most 100.

思路:
此题是在Unique Paths那题基础上增设了一个条件,解法仍旧是动态规划。

AC代码:

class Solution(object):
    def uniquePathsWithObstacles(self, obstacleGrid):
        """
        :type obstacleGrid: List[List[int]]
        :rtype: int
        """
        m, n = len(obstacleGrid), len(obstacleGrid[0])
        martix = [[0] * n] * m
        for i in range(m):
            for j in range(n):
                if obstacleGrid[i][j] == 1:
                    martix[i][j] = 0
                else:
                    if i == 0 and j == 0:
                        martix[i][j] = 1
                    elif i == 0:
                        martix[i][j] = martix[i][j - 1]
                    elif j == 0:
                        martix[i][j] = martix[i - 1][j]
                    else:
                        martix[i][j] = martix[i - 1][j] + martix[i][j - 1]
        return martix[m - 1][n - 1]
阅读更多

没有更多推荐了,返回首页