跳到主要内容

3259.超级饮料的最大强化能量

链接:3259.超级饮料的最大强化能量
难度:Medium
标签:数组、动态规划
简介:返回在接下来的 n 小时内你能获得的 最大 总强化能量。

题解 1 - undefined

  • 编辑时间:2024-11-01
  • 执行用时:1121ms
  • 内存消耗:426.5MB
  • 编程语言:undefined
  • 解法介绍:dfs
class Solution:
def maxEnergyBoost(self, energyDrinkA: List[int], energyDrinkB: List[int]) -> int:
n = len(energyDrinkA)
drinks = [energyDrinkA, energyDrinkB]
@cache
def dfs(cur: int, drink_idx: int) -> int:
if cur == n: return 0
# print(f'===>DFS', cur, drink_idx)
return max(
dfs(cur + 1, drink_idx) + drinks[drink_idx][cur],
dfs(cur + 1, (drink_idx + 1) % 2)
)
return max(dfs(1, 0) + energyDrinkA[0], dfs(1, 1) + energyDrinkB[0])