Skip to content

Commit fcb4d8b

Browse files
authored
Update 1406-stone-game-iii.js
1 parent feb8a7f commit fcb4d8b

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

1406-stone-game-iii.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,24 @@ const stoneGameIII = function (stoneValue) {
2020
else if (dp[0] * 2 > suffixSum[0]) return 'Alice'
2121
else return 'Bob'
2222
}
23+
24+
// another
25+
26+
/**
27+
* @param {number[]} stoneValue
28+
* @return {string}
29+
*/
30+
const stoneGameIII = function (stoneValue) {
31+
const n = stoneValue.length,
32+
dp = new Array(4).fill(0)
33+
for (let i = n - 1; i >= 0; --i) {
34+
dp[i % 4] = -Infinity
35+
for (let k = 0, take = 0; k < 3 && i + k < n; ++k) {
36+
take += stoneValue[i + k]
37+
dp[i % 4] = Math.max(dp[i % 4], take - dp[(i + k + 1) % 4])
38+
}
39+
}
40+
if (dp[0] > 0) return 'Alice'
41+
if (dp[0] < 0) return 'Bob'
42+
return 'Tie'
43+
}

0 commit comments

Comments
 (0)