Unique Paths II
Description
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.
Notice m and n will be at most 100.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.
Link
Method
- Dp
- x
Example
- 1
class Solution { public: /** * @param obstacleGrid: A list of lists of integers * @return: An integer */ int uniquePathsWithObstacles(vector<vector<int> > &obstacleGrid) { // write your code here if (obstacleGrid.empty()) { return 0; } int m = obstacleGrid.size(); int n = obstacleGrid[0].size(); vector<vector<int>> dp(m+1, vector<int>(n+1, 0)); // may be the first block is the obstacle, so not any move is allowed dp[0][1] = 1; for (int i = 1; i <= m; ++i) { for (int j = 1; j <= n; ++j) { // the dp[m+1][n+1], obstacleGrid[m][n], // the current i j in dp will be related with i-1 j-1 in obstacleGrid if (obstacleGrid[i-1][j-1] != 1) { dp[i][j] = dp[i-1][j] + dp[i][j-1]; } } } return dp[m][n]; } };
Similar problems
x
Tags
x