lintcode-115-不同的路径II

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];    }}

原文地址:https://www.cnblogs.com/t1314/p/12332419.html