题解 | 求路径 ii

求路径 ii

https://www.nowcoder.com/practice/3cdf08dd4e974260921b712f0a5c8752


#
# 
# @param obstacleGrid int整型二维数组 
# @return int整型
#
class Solution:
    def uniquePathsWithObstacles(self , obstacleGrid ):
        # write code here
        # dp[i][j]为走到(i,j)有多少路径
        # dp[0] = 1,dp[][0]=1
        # 核心递推公式是什么呢?
        # dp[i][j] = dp[i-1][j]+dp[i][j-1]
        # if obstacleGrid[i][j]==1:dp[i][j]=0
        # else:dp[i][j] = dp[i-1][j]+dp[i][j-1]
        # if o[0][0]==1 or o[n-1][m-1]==1:return 0
        n,m = len(obstacleGrid),len(obstacleGrid[0])
        if obstacleGrid[0][0]==1 or obstacleGrid[n-1][m-1]==1:
            return 0
        dp = [[0]*(m) for _ in range(n)]
        dp[0][0] = 1
        for i in range(n):
            for j in range(m):
                if obstacleGrid[i][j] == 1:
                    dp[i][j] = 0
                elif i == 0 and j != 0:
                    dp[i][j] = dp[i][j-1]
                elif j==0 and i!=0:
                    dp[i][j] = dp[i-1][j]
                elif i>0 and j>0:
                    dp[i][j] = dp[i-1][j]+dp[i][j-1]
        return dp[n-1][m-1]

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务