63. Unique Paths II

由于障碍的出现,需要改动一下代码。需要注意的是在初始化第一行时如果前面出现障碍,后面必须都是0

class Solution {
    public int uniquePathsWithObstacles(int[][] obstacleGrid) {
        int row = obstacleGrid.length;
        int col = obstacleGrid[0].length;
        int[] dp = new int[col];
        for(int i = 0 ;i<col;i++)
        {
           if(obstacleGrid[0][i]==1)
           {
               for(int j = i ;j<col;j++)
               {
                   dp[j]=0;
               }
               break;
           }
            else
                dp[i]=1;
        }
        for(int i = 1 ;i<row;i++)
        {
            for(int j = 0 ;j<col;j++)
         {
           if(obstacleGrid[i][j]==0)
             dp[j]=j==0?dp[0]:dp[j]+dp[j-1];
           else
             dp[j]=0;
         }
        
       }
        return dp[col-1];
    }
    
}

推荐阅读更多精彩内容