首页 > 其他分享 >超级饮料的最大强化能量

超级饮料的最大强化能量

时间:2024-11-01 22:08:43浏览次数:1  
标签:max 超级 饮料 energyDrinkB 能量 energyDrinkA 强化

超级饮料的最大强化能量

题目

来自未来的体育科学家给你两个整数数组 energyDrinkA 和 energyDrinkB,数组长度都等于 n。这两个数组分别代表 A、B 两种不同能量饮料每小时所能提供的强化能量。

你需要每小时饮用一种能量饮料来 最大化 你的总强化能量。然而,如果从一种能量饮料切换到另一种,你需要等待一小时来梳理身体的能量体系(在那个小时里你将不会获得任何强化能量)。

返回在接下来的 n 小时内你能获得的 最大 总强化能量。

注意 你可以选择从饮用任意一种能量饮料开始。

示例 1:

输入:energyDrinkA = [1,3,1], energyDrinkB = [3,1,1]

输出:5

解释:

要想获得 5 点强化能量,需要选择只饮用能量饮料 A(或者只饮用 B)。

分析

这是个二维数组动态规划问题, d[i][0/1]表示i+1小时喝A/B能获得的最大能量

那么

d[i][0] = max([d[i-1][0], d[i-2][1]]) + energyDrinkA[i]
d[i][1] = max([d[i-1][1], d[i-2][0]]) + energyDrinkB[i]

结果返回max([d[n-1][0], d[n-1][1]])

class Solution:
    def maxEnergyBoost(self, energyDrinkA: List[int], energyDrinkB: List[int]) -> int:
        # 设d[i][0/1]表示第i天从A或者B取。
        # d[i][0] = max([d[i-1][0], d[i-2][1]]) + A[i]
        # d[i][1] = max([d[i-1][1], d[i-2][0]]) + B[i]
        n = len(energyDrinkA)
        d = [[0, 0] for _ in range(n)]
        d[0][0] = energyDrinkA[0]
        d[0][1] = energyDrinkB[0]

        for i in range(1, n):
            d[i][0] = max([d[i-1][0], d[i-2][1]]) + energyDrinkA[i]
            d[i][1] = max([d[i-1][1], d[i-2][0]]) + energyDrinkB[i]

        return max(d[n-1])

标签:max,超级,饮料,energyDrinkB,能量,energyDrinkA,强化
From: https://www.cnblogs.com/houjiaqi/p/18521258

相关文章

  • 2024-11-1-leetcode每日一题-3259. 超级饮料的最大强化能量
    题目描述来自未来的体育科学家给你两个整数数组 energyDrinkA 和 energyDrinkB,数组长度都等于 n。这两个数组分别代表A、B两种不同能量饮料每小时所能提供的强化能量。你需要每小时饮用一种能量饮料来 最大化 你的总强化能量。然而,如果从一种能量饮料切换到另一种,你......
  • Leetcode 3259. 超级饮料的最大强化能量
    动态规划。f[i][0/1]表示前i个且最后选A或B的方案的集合。所以f[i][0]=max(f[i-1][0],f[i-2][1])+A[i]。f[i][1]同理。1typedeflonglongLL;2constintN=1e5+10;3LLf[N][2];4classSolution{5public:6LLmaxEnergyBoost(vector<int>&A,vector<i......
  • 【SSL-RL】自监督强化学习:Plan2Explore算法
            ......
  • [超级硬件混响插件]TEGELER Audio Manufaktur RaumMaschine v1.1.8 [MacOSX, WiN](45.9
    Tegeler推出了一款混响效果器:Raummaschine,结合了高质量的DSP引擎和模拟管路,提供出色的声音和灵活性。Raummaschine是基于其硬件设计而创造的。这款独特的混响单元结合了高质量的DSP引擎、模拟管路和每个通道上的两个双三极管,以及输入和输出变压器。通过模拟硬件版本的每个方面......
  • C语言复习总结超详细版(1)小白转身即变 有实例超级详细
    废话不多说直接开整注:本博文超级详细但是还是适合有C语言基础的观看 耗时很久,内容不会有问题但是 ⚠️字体晦涩望见谅引子第一个C语言程序#include<stdio.h>intmain(){printf("Hello,LJY!\n");return0;} main函数每个C语⾔程序不管有多少⾏代码......
  • 谁是下一个超级个体?
    Hi,大家好!我就是大家口中AI001号员工通义灵码昨天刚发了一篇超全的使用指南《通义灵码最全使用指南》一键get√收藏新用户纷纷欢迎,还有免费的定制超大鼠标垫后台灵码的老朋友着急了!@Rainson说:老用户也想要礼物这不,安排上!都知道,我的核心能力是提供代码智能生成和研发......
  • 程序员必备单品:超级常用的linux指令+实际操作案例
    Linux常用命令在Linux系统中,有许多常用的命令可以帮助用户进行文件管理、系统监控、网络配置等操作。以下是一些常见的Linux命令及其具体使用案例:ls:列出目录内容基本用法:ls[选项][目录]常见参数:-a:显示所有文件,包括以.开头的隐藏文件。-l:使用长列表格式显示文件详......
  • 程序员必备单品:超级常用的linux指令+实际操作案例
    Linux常用命令在Linux系统中,有许多常用的命令可以帮助用户进行文件管理、系统监控、网络配置等操作。以下是一些常见的Linux命令及其具体使用案例:ls:列出目录内容基本用法:ls[选项][目录]常见参数:-a:显示所有文件,包括以.开头的隐藏文件。-l:使用长列表格式显示文件详细信......
  • 超级 SIM 卡:智能手机的便捷存储选项
    超级SIM卡已成为许多用户的一种很好的存储形式,因为它允许用户扩展智能手机的默认存储空间以存储更多视频和照片。超级Sim卡的工作原理类似于SD卡。简而言之,超级SIM卡使照片存储变得极其方便,但它存在数据丢失问题,并且从超级SIM卡恢复已删除的照片非常具有挑战性。但是,有一些......
  • 【EI复现】基于深度强化学习的微能源网能量管理与优化策略研究(Python代码实现)
    ......