Day 34 — Unique Paths II

class Solution {
public int uniquePathsWithObstacles(int[][] obstacleGrid) {

int m = obstacleGrid.length;
int n = obstacleGrid[0].length;
int[][] pathCount = new int[m][n];
pathCount[0][0] = obstacleGrid[0][0] == 1 ? 0 : 1;

for(int i = 1; i < n; i++) {
pathCount[0][i] =
obstacleGrid[0][i] == 0 ?
pathCount[0][i-1] : 0;
}

for(int i = 1; i < m; i++){
if(obstacleGrid[i][0] == 0) {
pathCount[i][0] = pathCount[i-1][0];
} else {
pathCount[i][0] = 0;
}
}

for(int i = 1; i < m; i++) {
for(int j = 1; j < n; j++) {
if(obstacleGrid[i][j] == 1) {
pathCount[i][j] =0;
continue;
}
if(obstacleGrid[i-1][j] == 0){
pathCount[i][j] += pathCount[i-1][j];
}
if(obstacleGrid[i][j-1] == 0){
pathCount[i][j] += pathCount[i][j-1];
}
}
}
return pathCount[m-1][n-1];
}
}

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store