[leetcode]63. Unique Paths II

class Solution {
    public int uniquePathsWithObstacles(int[][] obstacleGrid) {
        int m=obstacleGrid.length;
        int n=obstacleGrid[0].length;
        int[][] dp=new int[m+1][n+1];
        
        for(int i=0;i<=m;i++){
            for(int j=0;j<=n;j++){
                if(i==0)dp[i][j]=0;
                if(j==0)dp[i][j]=0;
            }
        }
        //只是为了dp[1][1]可以为1而已
        dp[0][1]=1;
        
        for(int i=1;i<=m;i++){
            for(int j=1;j<=n;j++){
                if(obstacleGrid[i-1][j-1]==0){
                    dp[i][j]=dp[i][j-1]+dp[i-1][j];
                }
                
                else{
                    dp[i][j]=0;
                }
            }
        }
        
        return dp[m][n];
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_36869329/article/details/84976747