63. 不同路徑 II DP

https://www.b2bchain.cn/6114.html 

class Solution {
    public int uniquePathsWithObstacles(int[][] obstacleGrid) {
        int m=obstacleGrid.length;
        int n=obstacleGrid[0].length;
        int [][]dp=new int[m][n];
        dp[0][0]= obstacleGrid[0][0]==1? 0 : 1;

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

    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章