和Unique paths是一样的
1 public int uniquePathsWithObstacles(int[][] obstacleGrid) { 2 if(obstacleGrid == null || obstacleGrid.length == 0 || obstacleGrid[0].length == 0) { 3 return 0; 4 } 5 int len = obstacleGrid[0].length; 6 int[] res = new int[len]; 7 res[0] = 1; 8 for(int i = 0; i < obstacleGrid.length; i++) { 9 for(int j = 0; j < len; j++) { 10 if(obstacleGrid[i][j] == 1) { 11 res[j] = 0; 12 } else { 13 if(j > 0) { 14 res[j] += res[j-1]; 15 } 16 } 17 } 18 } 19 return res[len-1]; 20 }
注意的是:
1.内外循坏都要从0开始,因为第一行也可能不可以走,并不能像上一题一样初始化成1
2. 第13行需要检查一下j是不是第一个
没啦!
时间: 2024-10-15 13:45:48