File tree 1 file changed +42
-0
lines changed
solution/0063.Unique Paths II
1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public int uniquePathsWithObstacles (int [][] dp ) {
3
+ if (dp [0 ][0 ] == 1 || dp [dp .length - 1 ][dp [0 ].length - 1 ] == 1 ) return 0 ;
4
+ for (int i = 1 ; i < dp .length ; i ++) {
5
+ if (dp [i ][0 ] == 1 ) {
6
+ dp [i ][0 ] = -1 ;
7
+ continue ;
8
+ }
9
+ if (dp [i - 1 ][0 ] == -1 ) {
10
+ dp [i ][0 ] = -1 ;
11
+ } else dp [i ][0 ] = 1 ;
12
+ }
13
+ for (int i = 1 ; i < dp [0 ].length ; i ++) {
14
+ if (dp [0 ][i ] == 1 ) {
15
+ dp [0 ][i ] = -1 ;
16
+ continue ;
17
+ }
18
+ if (dp [0 ][i - 1 ] == -1 ) {
19
+ dp [0 ][i ] = -1 ;
20
+ } else dp [0 ][i ] = 1 ;
21
+ }
22
+ for (int i = 1 ; i < dp .length ; i ++) {
23
+ for (int j = 1 ; j < dp [0 ].length ; j ++) {
24
+ if (dp [i ][j ] == 1 ) {
25
+ dp [i ][j ] = -1 ;
26
+ } else if (dp [i ][j - 1 ] == -1 && dp [i - 1 ][j ] == -1 ) {
27
+ dp [i ][j ] = -1 ;
28
+ } else if (dp [i ][j - 1 ] == -1 ) {
29
+ dp [i ][j ] = dp [i - 1 ][j ];
30
+ } else if (dp [i - 1 ][j ] == -1 ) {
31
+ dp [i ][j ] = dp [i ][j - 1 ];
32
+ } else {
33
+ dp [i ][j ] = dp [i - 1 ][j ] + dp [i ][j - 1 ];
34
+ }
35
+ }
36
+ }
37
+ int res = dp [dp .length - 1 ][dp [0 ].length - 1 ];
38
+ if (res == 0 ) return 1 ;
39
+ if (res == -1 ) return 0 ;
40
+ return res ;
41
+ }
42
+ }
You can’t perform that action at this time.
0 commit comments