Leetcode2383. 赢得比赛需要的最少训练时长

智能驾驶感知模块的测试评估方法(上) 对于智能驾驶系统而言,感知模块是开发难度最大、投入资源最多的核心部分。在智能驾驶开发团队内部,感知模块需要独立进行评测才能及早发现潜在缺陷或判断性能是否有改进。随着近几年BEV、OCC、E2E等新技术方案被越来越多企业应用,感知的评测变得越来越艰难,效率也变得越来越低下。本文作者基于在智驾测试行业多年经验,试图总结感知评测的基本规律和效率提升方法,以供读者一些启发。 阅读详情

Every day a Leetcode

题目来源:2383. 赢得比赛需要的最少训练时长

解法1:模拟

可以分开考虑在比赛开始前,需要最少增加的精力和经验数量。

每次遇到一个对手,当前精力值都需要严格大于当前对手,否则需要增加精力值。因此,在击败最后一个对手后,剩余的精力值至少要为 1。

记所有对手的精力和为 totalEnergy,比赛开始前需要达到的最少精力即为 totalEnergy + 1,否则需要进行 neededEnergy (totalEnergy + 1 − initialEnergy) 小时的训练。

而对于经验,初始化当前经验值 currentExperience,可以遍历一次 experience 数组:

  • 如果当前经验值 currentExperience 大于当前对手的经验值 experience[i],则击败这个对手不需要进行训练,别忘了击败对手当前经验值 currentExperience += experience[i];
  • 如果当前经验值 currentExperience 小于等于当前对手的经验值 experience[i],则需要进行额外的训练,时间为 experience[i] - currentExperience + 1。currentExperience 需要加上这个差值以及该对手的经验值。

遍历完数组之后可以得到增加经验方面需要进行的额外小时数 neededExperience。

neededEnergy + neededExperience 即为最终答案。

代码:

/*
 * @lc app=leetcode.cn id=2383 lang=cpp
 *
 * [2383] 赢得比赛需要的最少训练时长
 */

// @lc code=start
class Solution
{
public:
    int minNumberOfHours(int initialEnergy, int initialExperience, vector<int> &energy, vector<int> &experience)
    {
        int neededEnergy = 0;
        int totalEnergy = 0;
        for (int i = 0; i < energy.size(); i++)
            totalEnergy += energy[i];
        if (initialEnergy <= totalEnergy)
            neededEnergy = totalEnergy - initialEnergy + 1;

        int currentExperience = initialExperience;
        int neededExperience = 0;
        for (int i = 0; i < experience.size(); i++)
        {
            if (currentExperience <= experience[i])
            {
                int diff = experience[i] - currentExperience + 1;
                currentExperience += diff;
                neededExperience += diff;
                currentExperience += experience[i];
            }
            else
                currentExperience += experience[i];
        }
        return neededEnergy + neededExperience;
    }
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n),其中 n 是数组 energy 和 experience 的长度。我们需要遍历 energy 和 experience 数组各一遍。

空间复杂度:O(1)。仅使用常数空间。

Windows 10 本地硬盘变成了可弹出磁盘 今天新装了系统, 电脑是一个SSD+HHD, 没想到装好之后右下角显示可安全删除设备, 两个硬盘在那里. 这还得了. 查了一下午, 大致知道了是什么问题. Standard SATA AHCI controller使用高性能的硬盘模式就会把硬盘看作是一个可热插拔的存储器, 所以自然就会显示可弹出. 如果你的BIOS支持关闭HotSwap或者HotPlug, 那么直接关闭就可以了. 或者你直接在BIOS里把磁盘模式改为IDE, 不过这样就发挥不好你SSD的高性能了. 还有一种解决方法, 就是手动让系统把这两个 阅读详情

相关推荐

电力-平衡式IEC 60870-5-101规约报文解析

本文详细介绍了电力自动化中平衡式IEC 60870-5-101规约的应用,包括链路建立与初始化、对时、遥控操作、数据上送和总召唤等关键步骤,通过实例解析了报文格式和交互过程,是理解配网自动化通信的重要参考资料。

让你爱上电路设计 5686

Leetcode.2383 赢得比赛需要的最少训练时长

贪心

感觉画质不如...原神的博客 342

项目实训(四)——SAM模型的学习与部署

这里的show_mask就是我们用mask的prompt进行分割,show_points就是我们用points进行分割,show_box就是通过box进行分割,这是SAM的三种prompt的方式。总的来说,Meta AI 的 Segment Anything 模型为我们提供了一种全新的物体识别和分割方式,其强大的泛化能力和广泛的应用前景将极大地推动计算机视觉领域的发展。这里有vit_h、vit_b、vit_l三种权重模型,这里可以根据自己的需要下载相应的权重模型。我们是下载的vit_h权重模型。

yyyyyyyx_的博客 1421

LeetCode 2383. 赢得比赛需要的最少训练时长

LeetCode 2383. 赢得比赛需要的最少训练时长 你正在参加一场比赛,给你两个 正 整数 initialEnergy 和 initialExperience 分别表示你的初始精力和初始经验。 另给你两个下标从 0 开始的整数数组 energy 和 experience,长度均为 n 。 你将会 依次 对上 n 个对手。第 i 个对手的精力和经验分别用 energy[i] 和 experience[i] 表示。当你对上对手时,需要在经验和精力上都 严格 超过对手才能击败他们,然后在可能的情况下继续

<font color="Pink">Tisfy的博客</font> 388

CentOS系统MySQL安装与配置全攻略

关系型数据库是数据存储和管理的核心技术,MySQL作为其中最流行的开源数据库,采用客户端-服务器架构实现数据的高效组织与访问。其核心原理基于SQL语言和ACID事务特性,支持多种存储引擎满足不同场景需求。在Linux环境下,通过yum/dnf包管理器可以快速部署MySQL服务,同时支持源码编译实现深度定制。数据库安装后的安全加固和性能调优尤为关键,包括设置复杂密码、配置防火墙规则、调整内存参数等。本文以CentOS 7/8系统为例,详细讲解从基础安装到生产环境优化的全流程,特别针对国内用户遇到的网络问题和依

weixin_32667955的博客 293

HDLBits答案汇总

前言 该博客为本人做HDLBits习题时的心得记录总结,欢迎大家一起交流进步。 HDLBits网站链接 Verilog Language Basics Vectors Modules:Hierarchy Procedures More Verilog Features Circuits Combinational Logic Basic gates Multiplexers Arithmetic Circuits Karnaugh Map to Circuit Sequential Logic Latche

谦豫 9万+

LeetCode-2383. 赢得比赛需要的最少训练时长【贪心,数组】

当你对上对手时,需要在经验和精力上都 严格 超过对手才能击败他们,然后在可能的情况下继续对上下一个对手。输入:initialEnergy = 5, initialExperience = 3, energy = [1,4,3,2], experience = [2,6,3,1]击败第 i 个对手会使你的经验 增加 experience[i],但会将你的精力 减少 energy[i]。解释:在 6 小时训练后,你可以将精力提高到 11 ,并且再训练 2 个小时将经验提高到 5。空间复杂度:O(1)

zik的博客 473

信息安全与技术——(十一)恶意代码检测与防范技术

恶意代码(Malicious Code )或恶意软件(Malware )主要是指以危害信息的安全等不良意图为目的的程序,它们一般潜伏在受害计算机系统中实施破坏或窃取信息。

m0_63853448的博客 5993

​力扣解法汇总2383. 赢得比赛需要的最少训练时长

要注意点是,每次计算出experience[i]和initialExperience的差值后,更新initialExperience的值时,需要计入击败的对手的经验值。在 6 小时训练后,你可以将精力提高到 11 ,并且再训练 2 个小时将经验提高到 5。精力变为:6 - 3 = 3 ,经验变为:13 + 3 = 16。精力变为:3 - 2 = 1 ,经验变为:16 + 1 = 17。- 你的精力与经验都超过第 1 个对手,所以获胜。- 你的精力与经验都超过第 3 个对手,所以获胜。

分享+记录 625

Rocfall安装包&安装教程

Rocfall 第一步:下载安装包 下载路径: 链接:https://pan.baidu.com/s/1Dzvxzv67dSPRi7f7ZT9EeA 提取码:o9pl 第二部:安装 安装包解压 选择part1进行解压 点击Setup.exe启动安装 生成Serial Number 替换启动程序 安装完毕 素材来源于网络(禁止用于商业仅用于完成毕业设计和研究使用) 谢谢! ...

cym的博客 8707

【Claude Code的Harness Engineering实现】:06-记忆系统(Memory)

记忆系统是Claude Code实现跨会话持久化和上下文保持的核心组件。它分为短期记忆(当前会话的对话历史)和长期记忆(跨会话保留的结构化信息),通过多层级的文件系统实现灵活的记忆管理。

rengang66的博客 241

leetcode-2383-赢得比赛需要的最少训练时长

leetcode-赢得比赛需要的最少训练时长

weixin_53934249的博客 123

数据挖掘实战-基于情感分析+网络语义分析对泾阳茯茶用户评论进行文本分析

本实验数据集来源于京东商城,使用Python爬虫获取泾阳茯茶商品的用户评论,共计3416条数据,字段有用户ID、用户昵称、IP属地、评论时间、评分、评论内容,共计6个字段信息。'''作者:艾派森csdn主页:https://blog.csdn.net/m0_64336780时间:2024/5/28'''# 导包import csv# 获取评论q=0.01',q=0.9,en;b_avif=1;b_dw=1412;b_dh=650;areaId=27;

m0_64336780的博客 1万+

力扣:2383. 赢得比赛需要的最少训练时长

你正在参加一场比赛,给你两个 正 整数 initialEnergy 和 initialExperience 分别表示你的初始精力和初始经验。另给你两个下标从 0 开始的整数数组 energy 和 experience,长度均为 n。你将会 依次 对上 n 个对手。第 i 个对手的精力和经验分别用 energy[i] 和 experience[i] 表示。当你对上对手时,需要在经验和精力上都 严格 超过对手才能击败他们,然后在可能的情况下继续对上下一个对手。

weixin_46585382的博客 221

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

python-leetcode-2383. 赢得比赛需要的最少训练时长

这是一个贪心算法的问题,我们需要,使得我们可以按顺序打败所有对手。我们需要处理两个关键条件:每个对手要求你的。每个对手要求你的。

Lucy_wzw的博客 598

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【LeetCode】2383. 赢得比赛需要的最少训练时长

贪心

bigBbug的博客 440

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

LeetCode——2383. 赢得比赛需要的最少训练时长

2383. 赢得比赛需要的最少训练时长

FuckerGod的博客 437

leetcode:2383. 赢得比赛需要的最少训练时长(python3解法)

leetcode:2383. 赢得比赛需要的最少训练时长(python3解法)

qq_41905051的博客 326

力扣:709. 转换成小写字母&2383. 赢得比赛需要的最少训练时长

力扣:709. 转换成小写字母&2383. 赢得比赛需要的最少训练时长

a_100100的博客 741

leetcode: 2383. 赢得比赛需要的最少训练时长

遍历 energy 和 experience,如果不如对手,那么增加自己的精力和经验,补到刚好超过对手即可。把这些增加的量加起来,在开始比赛前训练,就可以击败所有对手了。你可能会问,题目不是要求在开始比赛前训练吗,怎么到比赛中去训练了?

OceanStar的博客 323

leetcode.2383 赢得比赛需要的最少训练时长 - 贪心 + 模拟

贪心+模拟

weixin_61639349的博客 211

[力扣题]2383. 赢得比赛需要的最少训练时长

[力扣题]2383. 赢得比赛需要的最少训练时长

qq_62649563的博客 179

LeetCode:2383.赢得比赛需要的最少训练时长

精力:由于精力是不断减小,所以只需要将需要的总精力值算出,如果比initialEnergy大,则表示需要在精力方面进行训练,时间为m-initialenergy+1。由于最开始没有看清楚题目,所以处了精力这一部分,在经验方面想的办法是类似于操作系统死锁安全检测,银行家算法来尝试解决。后来发现是按照顺序一个一个进行比赛,所以精力这一部分不发生改变,而经验只需要进行遍历模拟即可。经验:一个一个比,大于加上去,训练时间不变,小于则先加训练时长,为差值+1,在将原本经验更新。

m0_52510770的博客 195

LeetCode-2383-赢得比赛需要的最少训练时长

我们可以利用贪心法计算我们当前需要的最少的用于锻炼经验和精力的时间。显然,我们想要求得最少的初始精力,我们需要将所有精力相加,而后将结果加一即为我们需要的最少精力。我们此时只需要对 0 和。求最大值即可获得我们需要花费给精力的时间。

L.Wzz的博客 175

【week307-amazon】leetcode2383/6152.赢得比赛需要的最少训练时长

周赛

jqq125的博客 1094

LeetCode·每日一题·2383. 赢得比赛需要的最少训练时长·贪心

贪心

m0_64560763的博客 261
上一篇: Leetcode2389. 和有限的最长子序列
下一篇: Leetcode2379. 得到 K 个黑块的最少涂色次数
UestcXiye
博客等级 码龄8年 9032粉丝 1306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值