Skip to content

Commit feb8a7f

Browse files
authored
Create 1406-stone-game-iii.js
1 parent 8f90860 commit feb8a7f

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

1406-stone-game-iii.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/**
2+
* @param {number[]} stoneValue
3+
* @return {string}
4+
*/
5+
const stoneGameIII = function (stoneValue) {
6+
const n = stoneValue.length
7+
const suffixSum = new Array(n + 1)
8+
const dp = new Array(n + 1)
9+
suffixSum[n] = 0
10+
dp[n] = 0
11+
for (let i = n - 1; i >= 0; i--)
12+
suffixSum[i] = suffixSum[i + 1] + stoneValue[i]
13+
for (let i = n - 1; i >= 0; i--) {
14+
dp[i] = stoneValue[i] + suffixSum[i + 1] - dp[i + 1]
15+
for (let k = i + 1; k < i + 3 && k < n; k++) {
16+
dp[i] = Math.max(dp[i], suffixSum[i] - dp[k + 1])
17+
}
18+
}
19+
if (dp[0] * 2 === suffixSum[0]) return 'Tie'
20+
else if (dp[0] * 2 > suffixSum[0]) return 'Alice'
21+
else return 'Bob'
22+
}

0 commit comments

Comments
 (0)