64 leetcode - Unique Paths II
2016-12-27 20:42
429 查看
#!/usr/bin/python # -*- coding: utf-8 -*- ''' 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. 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. ''' class Solution(object): def uniquePathsWithObstacles(self, obstacleGrid): """ :type obstacleGrid: List[List[int]] :rtype: int """ len_row = len(obstacleGrid) if len_row == 0: return 0 len_col = len(obstacleGrid[0]) if len_col == 0: return 0 if obstacleGrid[0][0] == 1: return 0 dp = [[0] * len_col for i in range(len_row)] for col in range(len_col): if obstacleGrid[0][col] == 1: break else: dp[0][col] = 1 for row in range(len_row): if obstacleGrid[row][0] == 1: break else: dp[row][0] = 1 for row in range(1,len_row): for col in range(1,len_col): if obstacleGrid[row][col] == 1: dp[row][col] = 0 else: dp[row][col] = dp[row - 1][col] + dp[row][col - 1] return dp[len_row - 1][len_col - 1] if __name__ == "__main__": s = Solution() print s.uniquePathsWithObstacles([[0,0,0],[0,1,0],[0,0,0]])
相关文章推荐
- LeetCode 62/63/120/64 Unique PathsI/II Triangle/Min sum Path/Rectangle Area--DP
- LeetCode 64/62/63. Minimum Path Sum/ Unique Paths i, ii
- Leetcode Unique Paths II
- [Leetcode]Unique Paths II
- LeetCode Unique Paths II
- [LeetCode] 124: Unique Paths II
- LeetCode-Unique Paths II
- LeetCode 95. Unique Paths II
- [leetcode] Unique Paths II
- Leetcode133: Unique Paths II
- 【leetcode】Unique Paths II
- LeetCode: Unique Paths II
- 【leetcode】Unique Paths II(动态规划)
- leetcode: Unique Paths II
- [leetcode 63] Unique Paths II
- leetCode+Unique Paths II
- [LeetCode][Java] Unique Paths II
- [LeetCode] Unique Paths && Unique Paths II && Minimum Path Sum (动态规划之 Matrix DP )
- [LeetCode] Unique Paths II
- LeetCode-Unique Paths II