Skip to content

Commit 93e518b

Browse files
authored
feat: add java solution to lc problem: No.0877.Stone Game (#562)
1 parent a2f0c8f commit 93e518b

File tree

3 files changed

+45
-2
lines changed

3 files changed

+45
-2
lines changed

solution/0800-0899/0877.Stone Game/README.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,21 @@
5959
<!-- 这里可写当前语言的特殊实现逻辑 -->
6060

6161
```java
62-
62+
class Solution {
63+
public boolean stoneGame(int[] ps) {
64+
int n = ps.length;
65+
int[][] f = new int[n + 2][n + 2];
66+
for (int len = 1; len <= n; len++) {
67+
for (int l = 1; l + len - 1 <= n; l++) {
68+
int r = l + len - 1;
69+
int a = ps[l - 1] - f[l + 1][r];
70+
int b = ps[r - 1] - f[l][r - 1];
71+
f[l][r] = Math.max(a, b);
72+
}
73+
}
74+
return f[1][n] > 0;
75+
}
76+
}
6377
```
6478

6579
### **...**

solution/0800-0899/0877.Stone Game/README_EN.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,21 @@ This demonstrated that taking the first 5 was a winning move for Alex, so we ret
5050
### **Java**
5151

5252
```java
53-
53+
class Solution {
54+
public boolean stoneGame(int[] ps) {
55+
int n = ps.length;
56+
int[][] f = new int[n + 2][n + 2];
57+
for (int len = 1; len <= n; len++) {
58+
for (int l = 1; l + len - 1 <= n; l++) {
59+
int r = l + len - 1;
60+
int a = ps[l - 1] - f[l + 1][r];
61+
int b = ps[r - 1] - f[l][r - 1];
62+
f[l][r] = Math.max(a, b);
63+
}
64+
}
65+
return f[1][n] > 0;
66+
}
67+
}
5468
```
5569

5670
### **...**
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Solution {
2+
public boolean stoneGame(int[] ps) {
3+
int n = ps.length;
4+
int[][] f = new int[n + 2][n + 2];
5+
for (int len = 1; len <= n; len++) {
6+
for (int l = 1; l + len - 1 <= n; l++) {
7+
int r = l + len - 1;
8+
int a = ps[l - 1] - f[l + 1][r];
9+
int b = ps[r - 1] - f[l][r - 1];
10+
f[l][r] = Math.max(a, b);
11+
}
12+
}
13+
return f[1][n] > 0;
14+
}
15+
}

0 commit comments

Comments
 (0)