leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
0877.cpp (548B)
1 // Return true works as Alice is always the winner
2 class Solution {
3 int dp[501][501];
4 int score(const vector<int> &piles, int i, int j, int crnt) {
5 if (j < i) return 0;
6 if (dp[i][j] != -1) return dp[i][j];
7 return dp[i][j] = max(score(piles, i + 1, j, -(crnt + piles[i])),
8 score(piles, i, j - 1, -(crnt + piles[j])));
9 }
11 public:
12 Solution() { memset(dp, 0xFF, sizeof(dp)); }
13 bool stoneGame(const vector<int> &piles) { return score(piles, 0, piles.size() - 1, 0) <= 0; }
14 };