Skip to content

Commit 4916f9d

Browse files
committed
Add Solution2.java to problems 63
1 parent cb267cf commit 4916f9d

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
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+
}

0 commit comments

Comments
 (0)