Code :- class Solution { public: int dp[2][101][101]; int findMax(vector < int > & piles, char person, int n, int i, int M) { if (i >= n) return 0; if (dp[person - 'A'][i][M] != -1) return dp[person - 'A'][i][M]; int stone = 0; int result = person == 'A' ? 0 : INT_MAX; for (int x = 1; x & piles) { int n = piles.size(); memset(dp, -1, sizeof(dp)); return findMax(piles, 'A', n, 0, 1); } };
Code :-
class Solution {
public: int dp[2][101][101];
int findMax(vector < int > & piles, char person, int n, int i, int M) {
if (i >= n)
return 0;
if (dp[person - 'A'][i][M] != -1) return dp[person - 'A'][i][M];
int stone = 0;
int result = person == 'A' ? 0 : INT_MAX;
for (int x = 1; x & piles) {
int n = piles.size();
memset(dp, -1, sizeof(dp));
return findMax(piles, 'A', n, 0, 1);
}
};