leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
2218.cpp (540B)
0 class Solution { 1 int dp[1001][2001] = {0}; 2 3 public: 4 int maxValueOfCoins(const vector<vector<int>> &piles, int left, int pile = 0) { 5 if (!left || pile >= piles.size()) return 0; 6 if (dp[pile][left]) return dp[pile][left]; 7 8 int res = maxValueOfCoins(piles, left, pile + 1), sum = 0; 9 for (int i = 0; i < piles[pile].size() && i < left; i++) { 10 res = max(res, (sum += piles[pile][i]) + maxValueOfCoins(piles, left - i - 1, pile + 1)); 11 } 12 13 return dp[pile][left] = res; 14 } 15 };