2218. Maximum Value of K Coins From Piles
2218. Maximum Value of K Coins From Piles
這一個題目和 188. Best Time to Buy and Sell Stock IV 很類似,同時有兩件事情需要做決策。
class Solution:
def maxValueOfCoins(self, piles: List[List[int]], k: int) -> int:
@cache
def dp(i, remaining):
if i == len(piles):
return 0
if remaining == 0:
return 0
do_nothing = dp(i + 1, remaining)
do_something = 0
curr = 0
for j in range(min(remaining, len(piles[i]))):
curr += piles[i][j]
do_something = max(do_something, curr + dp(i + 1, remaining - j - 1))
return max(do_nothing, do_something)
return dp(0, k)