Leetcode 63. Unique Paths II

来源:互联网 发布:摄氏度转华氏度 c语言 编辑:程序博客网 时间:2024/06/05 16:20
// Follow up for "Unique Paths"://// Now consider if some obstacles are added to the grids. How many unique paths// would there be?//// An obstacle and empty space is marked as 1 and 0 respectively in the grid.//// For example,// There is one obstacle in the middle of a 3x3 grid as illustrated below.//// [// [0,0,0],// [0,1,0],// [0,0,0]// ]// The total number of unique paths is 2.public class Main {public static void main(String[] args) throws Exception {int[][] input = {{0},{0}};System.out.println(uniquePathsWithObstacles(input));}public static int uniquePathsWithObstacles(int[][] obstacleGrid) {int[][] result = new int[obstacleGrid.length][obstacleGrid[0].length];boolean flag1 = false;boolean flag2 = false;for(int i = 0;i<obstacleGrid.length;i++){//初始化结果矩阵的第一行,如果之前有障碍以后就都是0了if(obstacleGrid[i][0]!=1 && !flag1){result[i][0] = 1;}else{flag1 = true;result[i][0] = 0;}}for(int i = 0;i<obstacleGrid[0].length;i++){//初始化结果矩阵的第一列,如果之前有障碍以后就都是0了if(obstacleGrid[0][i]!=1 && !flag2){result[0][i] = 1;}else{flag2 = true;result[0][i] = 0;}}for(int i = 1;i<obstacleGrid.length;i++){for(int j = 1;j<obstacleGrid[0].length;j++){if(obstacleGrid[i][j] == 1){//如果有障碍则结果矩阵相应位置是0result[i][j] = 0;continue;}result[i][j] = result[i-1][j]+result[i][j-1];}}return result[obstacleGrid.length-1][obstacleGrid[0].length-1];}}

0 0