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.
Note: m and n will be at most 100.
————————————————
版权声明:本文为优快云博主「Daisy么么哒」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/chaochen1407/article/details/43307579
package com.company; public class LeetCodeUniquePathII { /* public int uniquePath2(int a[][]){ int x=a.length; int y=a[0].length; int nets[][] =new int[x][y]; //row for(int i =0;i<x;i++){ for(int j =0;j<y;j++){ nets[i][j]=0; if(a[i][j]==1){ nets[i][j]=0; } if(nets[i-1][j]=0&&i=0){ nets[i][j]=0; } else if(nets[i][j-1]=0&&j=0){ nets[i][j]=0; }else if(nets[i-1][j]=0){ nets[i][j]=nets[i-1][j]; }else if (nets[i][j-1]=0){ nets[i][j]=nets[i][j-1]; }else{ nets[i][j]=nets[i-1][j]+nets[i][j-1]; } } } return nets[i-1][j-1]; }*/ public int uniquePath3(int a[][]) { int x = a.length; int y = a[0].length; int nets[][] = new int[x][y]; //row for (int i = 0; i < x; i++) { for (int j = 0; j < y; j++) { nets[i][j] = 0; if (a[i][j] == 1) { nets[i][j] = 0; } else { if (i == 0 && j == 0) { nets[i][j] = 1; } else { if (i - 1 >= 0) { nets[i][j] += nets[i - 1][j]; } if (j - 1 >= 0) { nets[i][j] += nets[1][j - 1]; } } } } } return nets[x - 1][y - 1]; } }