-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLC_1140.java
33 lines (29 loc) · 1006 Bytes
/
LC_1140.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class Solution {
public int stoneGameII(int[] piles) {
int length=piles.length;
int[][] dp=new int[length+1][length+1];
int[] suffixSum=new int[length+1];
for(int i=length -1 ; i>=0 ; i--){
suffixSum[i] = suffixSum[i+1] + piles[i];
}
for(int i=0; i<=length; i++){
dp[i][length]=suffixSum[i];
}
for(int index=length-1; index>=0; index--){
for(int maxTillNow = length -1; maxTillNow >= 1; maxTillNow--){
for(
int X=1;
X<=2* maxTillNow && index + X <= length;
X++
){
dp[index][maxTillNow] =Math.max(
dp[index][maxTillNow],
suffixSum[index] -
dp[index +X][Math.max(maxTillNow,X)]
);
}
}
}
return dp[0][1];
}
}