3259.超级饮料的最大强化能量
链接:3259.超级饮料的最大强化能量
难度:Medium
标签:数组、动态规划
简介:返回在接下来的 n 小时内你能获得的 最大 总强化能量。
题解 1 - python
- 编辑时间:2024-11-01
- 执行用时:1121ms
- 内存消耗:426.5MB
- 编程语言:python
- 解法介绍: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])