public class Solution { /** * @param obstacleGrid: A list of lists of integers * @return: An integer */ public int uniquePathsWithObstacles(int[][] obstacleGrid) { // write your code here int m = obstacleGrid.length,n=obstacleGrid[0].length; int[][] dp = new int[m][n]; for(int i=0;i<m;++i){ for(int j=0;j<n;++j){ if(obstacleGrid[i][j]==1){ dp[i][j]=0; continue; } if(i==0&&j==0){ dp[i][j]=1; continue; } if(i==0){ dp[i][j]=dp[i][j-1]; continue; } if(j==0){ dp[i][j]=dp[i-1][j]; continue; } dp[i][j]=dp[i-1][j]+dp[i][j-1]; } } return dp[m-1][n-1]; } }
public class Solution { /** * @param obstacleGrid: A list of lists of integers * @return: An integer */ public int uniquePathsWithObstacles(int[][] obstacleGrid) { // write your code here int m = obstacleGrid.length,n=obstacleGrid[0].length; int[][] dp = new int[m][n];
for(int i=0;i<m;++i){ for(int j=0;j<n;++j){ if(obstacleGrid[i][j]==1){ dp[i][j]=0; continue; } if(i==0&&j==0){ dp[i][j]=1; continue; } if(i==0){ dp[i][j]=dp[i][j-1]; continue; } if(j==0){ dp[i][j]=dp[i-1][j]; continue; } dp[i][j]=dp[i-1][j]+dp[i][j-1]; } } return dp[m-1][n-1]; }}