zoukankan      html  css  js  c++  java
  • [LeetCode]题解(python):063-Unique path II


    题目来源


    https://leetcode.com/problems/unique-paths-ii/

    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.


    题意分析


    Input:a matrix as list[list[int]]

    Output:the number of path

    Conditions:从左上角走到左下角,注意有障碍不能通过


    题目思路


    上一题是用数学方法直接解,这一题用动态规划吧,因为每一步都会基于上一格或者是左一格,动态方程为dp[i][j] = dp[i][j-1] + dp[i-1][j]

    注意初始化的时候如果遇到障碍,后面的位置不能初始化为0了


    AC代码(Python)


     1 class Solution(object):
     2     def uniquePathsWithObstacles(self, obstacleGrid):
     3         """
     4         :type obstacleGrid: List[List[int]]
     5         :rtype: int
     6         """
     7         m = len(obstacleGrid)
     8         n = len(obstacleGrid[0])
     9         dp = [[0 for i in range(n)] for j in range(m)]
    10         for i in range(n):
    11             if obstacleGrid[0][i] == 1:
    12                 break
    13             else:
    14                 dp[0][i] = 1
    15         
    16         for i in range(m):
    17             if obstacleGrid[i][0] == 1:
    18                 break
    19             else:
    20                 dp[i][0] = 1
    21         
    22         for i in range(1, m):
    23             for j in range(1, n):
    24                 if obstacleGrid[i][j] == 0:
    25                     dp[i][j] = dp[i - 1][j] + dp[i][j - 1]
    26         
    27         return dp[m - 1][n - 1]
  • 相关阅读:
    [centos6.5]添加eclipse快捷方式
    Maven 实用命令和技巧
    MyEclipse 15 集成SVN
    Eclipse不给提示no default proposals
    Eclipse快捷键
    Maven打包排除不需要的文件。
    MySQL用法
    Idea反向生成JavaBean
    java.lang.NoClassDefFoundError: [Lorg/hibernate/engine/FilterDefinition
    Spring+SpringMVC+MyBatis+Maven 服务端XML配置
  • 原文地址:https://www.cnblogs.com/loadofleaf/p/5093528.html
Copyright © 2011-2022 走看看