当前位置: 首页 > news >正文

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

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];}elsecurrentExperience += experience[i];}return neededEnergy + neededExperience;}
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

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

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

相关文章:

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

Every day a Leetcode 题目来源&#xff1a;2383. 赢得比赛需要的最少训练时长 解法1&#xff1a;模拟 可以分开考虑在比赛开始前&#xff0c;需要最少增加的精力和经验数量。 每次遇到一个对手&#xff0c;当前精力值都需要严格大于当前对手&#xff0c;否则需要增加精力值…...

js代码执行过程、调用栈、执行上下文

参考资料 极客时间课程《浏览器工作原理与实践》 – 李兵 一、js代码执行过程 &#xff08;一&#xff09;javascript代码的执行流程 浏览器执行javascript代码的流程如下图所示&#xff1a; javascript的执行机制是&#xff1a;先编译&#xff0c;再执行。在编译阶段生成了…...

互联网摸鱼日报(2023-05-12)

互联网摸鱼日报&#xff08;2023-05-12&#xff09; InfoQ 热门话题 建设和改进持续业务交付能力&#xff5c; BizDevOps 公开课 一部手机就可运行&#xff0c;精通Python等20种语言&#xff01;谷歌终于能与OpenAI 打擂台了&#xff0c;全新PaLM 2比肩GPT-4 蚂蚁数科开发者…...

【Python从入门到实践3.1】扑克发牌知识点(range函数,def函数,else语句配合使用,random库,列表推导式)

扑克发牌知识点 range函数def函数else语句配合使用&#xff1a;random库列表推导式 本篇博文需要特别感谢"Python从入门到精通"课程中一位同学对扑克发牌程序做出的知识点分析,本博文的内容大多也是从这位同学的分析而来. range函数 Range()函数&#xff1a; *返回一…...

Spring Cloud第二季--Spring Cloud Bus

文章目录 Spring Clud Bus什么是总线基本原理 牛刀小试 Spring Clud Bus 在Spring Cloud学习–配置中心&#xff08;Config&#xff09;中实现了集中管理微服务配置、不同环境不同配置、运行期间也可动态调整、配置修改后可以自动更新的需求&#xff0c;但同时也有一个弊端&am…...

Unittest自动化测试之unittestunittest_生成测试报告

unittest_生成测试报告 测试报告为测试结果的统计即展示&#xff0c;是自动化测试不可或缺的一部分&#xff0c;利用unittest 可以生成测试报告 方式一、使用第三方 HTMLTestRunner 执行测试用例集&#xff0c;生成网页版测试报告&#xff08;推荐&#xff09; HTMLTestRunn…...

一个查询IP地理信息和CDN提供商的离线终端工具

Nali 功能 支持多种数据库 纯真 IPv4 离线数据库ZX IPv6 离线数据库Geoip2 城市数据库 (可选)IPIP 数据库 (可选)ip2region 数据库 (可选)DB-IP 数据库 (可选)IP2Location DB3 LITE 数据库 (可选) CDN 服务提供商查询支持管道处理支持交互式查询同时支持IPv4和IPv6支持多语言…...

RflySim平台使用篇 | Rflysim3D软件使用系列教程(二)

导读: RflySim3D&#xff08;支持体验版&#xff09;和RflySimUE5&#xff08;支持完整版&#xff09;为本平台核心三维显示软件&#xff0c; 分别基于UE4 和UE5 引擎开发&#xff0c;具备高逼真虚拟现实显示效果。本视频主要讲解了如何将自定义的三维场景如何加载到RflySim3D…...

2023 年第五届河南省 CCPC 大学生程序设计竞赛

题目地址 题目PDF地址 题解地址 Problem A. 小水獭游河南 ∣ a ∣ ≤ ∣ Σ ∣ 26 &#xff0c;暴力枚举 a 判断 b 是否为是回文串即可&#xff0c;时间复杂度 O ( ∣ Σ ∣ ∣ s ∣ ) 。 |a| ≤ |Σ| 26&#xff0c;暴力枚举 a 判断 b 是否为是回文串即可&#xff0c;时间…...

nginx liunx最新版本安装flask部署

一、nginx安装 1.进入Nginx官网的资源下载页&#xff1a;http://nginx.org/en/download.html 2.下载nginx-1.22.1.tar.gz&#xff0c; 3解压&#xff1a; tar -zxvf nginx-1.22.1.tar.gz解压完成后会在当前目录下得到一个新的nginx文件夹 4.终端进入nginx文件夹目录&#x…...

热图 -- pheatmap or ggplot2

文章目录 brief数据准备 pheatmap实例最朴素的方式数据缩放取消聚类更改每个小方格的大小聚类以及聚类方式和参数修改热图呈现的颜色修改legend ggplot2实例ggplot2实例变式添加 group bar做成dotplot pheatmap 多图组合问题 brief 这里主要记录了pheatmap 以及 ggplot2实现热…...

EIScopus检索 | 2023年智能交通与未来出行国际会议(CSTFM 2023)

会议简介 Brief Introduction 2023年智能交通与未来出行国际会议(CSTFM 2023) 会议时间&#xff1a;2023年7月28日-30日 召开地点&#xff1a;中国长沙 大会官网&#xff1a; CSTFM 2023-2023 International Conference on Smart Transportation and Future Mobility(CSTFM 202…...

如何系列 如何在Windows和Linux安装Nginx

文章目录 Windows一 下载Nginx二 启动Nginx三 验证 Linux一 安装依赖项二 下载Nginx源码包三 安装四 验证五 常用命令附录 Nginx是一款高性能的开源Web服务器和反向代理服务器&#xff0c;被广泛用于构建现代化的Web应用和提供静态内容。本篇博文将教你如何在Windows和Linux操作…...

“1+X+N”模式助力企业数字化转型

近期&#xff0c;中电金信顺利完成某股份制银行“基于战略解析与业务架构的全行科技规划项目”交付。针对客户的实际业务需求&#xff0c;中电金信采用“1XN”服务模式&#xff0c;服务客户全面的企业架构转型规划。项目组联合行方协同创新&#xff0c;首次将企架建模方法应用于…...

JavaEE(系列3) -- 多线程(线程的中断与线程等待)

新内容开始之前,我们总结一个知识点. Thread类中的start方法和run方法的区别? start(): 用start方法来启动线程&#xff0c;真正实现了多线程运行&#xff0c;这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程&#…...

想装一台自己的电脑,可以先了解下这些问题

时间&#xff1a;2023年5月11日19:09:56 ✨✨✨问题清单&#xff1a; ↪️计算机中CPU和内存是什么&#xff1f;分别有什么作用&#xff1f; ↪️为什么计算机中要有内存&#xff1f;CPU访问内存中的数据和访问硬盘中的数据有什么差别&#xff1f; ↪️CPU的基准速度表示什…...

Redis未授权漏洞复现

Redis简介 Redis是C语言开发的一个开源高性能&#xff08;key-value&#xff09;键值对类型的内存NoSQL数据库&#xff0c;可以用作数据库、缓存、信息中间件(性能非常优秀&#xff0c;支持持久化到硬盘且高可用)。由于其自身特点&#xff0c;可以广泛应用在数据集群&#xff…...

跳槽,如果没有更好的选择,可以去美团试试···

在美团干了半年&#xff0c;说一下自己的感受&#xff0c;美团是一家福利中等&#xff0c;工资待遇中上&#xff0c;高层管理团队强大&#xff0c;加班强度一般&#xff0c;技术不错&#xff0c;办公环境一般&#xff0c;工作氛围中上&#xff0c;部门差距之间工作体验差距巨大…...

Java10

Java10 &#xff08;一&#xff09;、配置文件&#xff08;二&#xff09;、多线程2.1 并发和并行2.2 多线程的实现方式2.3 常见成员方法2.3.1 线程的优先级2.3.2 守护线程&#xff08;备胎线程&#xff09;2.3.3 礼让线程和插入线程 2.4 线程生命周期2.5 线程安全问题2.6 锁2.…...

IMS call通话类型对比差异

IMS call呼入/呼出流程对比 呼出MO call大致流程 1)UE发送INVITE消息发起IMS call 2)UE接收网络返回的100 Trying 3)UE接收183 Session Progress 4)UE发送PRACK确认收到183 5)UE接收200 OK(PRACK) 6)UE发送UPDATE进行precondition流程 7)UE接收200 OK(UPDATE) 8…...

OpenClaw浏览器自动化:Qwen3-32B-Chat智能爬虫实战

OpenClaw浏览器自动化&#xff1a;Qwen3-32B-Chat智能爬虫实战 1. 为什么选择OpenClaw做浏览器自动化&#xff1f; 去年我接手了一个市场调研项目&#xff0c;需要从200多个电商页面抓取商品信息和用户评价。传统爬虫遇到动态加载、反爬机制时频繁报错&#xff0c;手动操作又…...

Qwen-Image-2512部署教程:阿里云/腾讯云轻量服务器512MB内存精简部署方案

Qwen-Image-2512部署教程&#xff1a;阿里云/腾讯云轻量服务器512MB内存精简部署方案 1. 前言&#xff1a;像素艺术生成新选择 你是否遇到过这样的困扰&#xff1a;想要创作独特的像素风格作品&#xff0c;却苦于没有专业的美术功底&#xff1f;或者需要为游戏开发快速生成大…...

LFM2.5-1.2B-Thinking-GGUF开发者案例:为开源硬件项目自动生成README与API文档

LFM2.5-1.2B-Thinking-GGUF开发者案例&#xff1a;为开源硬件项目自动生成README与API文档 1. 项目背景与模型介绍 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的一款轻量级文本生成模型&#xff0c;专为低资源环境优化设计。这个1.2B参数的模型采用GGUF格式封装&#xff0c;结…...

Chatbox 连接火山引擎 ModelNotOpen 实战指南:从零搭建到生产环境部署

作为一名开发者&#xff0c;你是否也曾对构建一个能与自己实时对话的AI应用心驰神往&#xff1f;想象一下&#xff0c;一个能听懂你说话、理解你意图、并用自然声音回应你的数字伙伴。这听起来像是未来科技&#xff0c;但实际上&#xff0c;利用现有的强大工具&#xff0c;我们…...

Context Rot:AI Agent 变蠢的真相,是上下文管理失控

很多团队在做 AI Agent 时都经历过类似的困惑&#xff1a;Agent 刚启动时表现还不错&#xff0c;跑了 20 步之后开始犯低级错误&#xff0c;到 50 步就像换了个模型——胡编乱造、忘记之前的决策、重复做已经做过的事。第一反应通常是&#xff1a;模型不够强&#xff0c;换个更…...

lvgl有哪些布局?

LVGL 提供了多种布局方式&#xff0c;帮助你高效组织界面元素&#xff0c;避免手动计算坐标。在 v8.2.0 中&#xff0c;主要有以下几种布局方法&#xff1a;1. 绝对定位&#xff08;手动设置坐标&#xff09; 最基础的方式&#xff0c;通过 lv_obj_set_pos(obj, x, y) 直接指定…...

百川2-13B驱动OpenClaw智能客服:电商售后场景的自动化响应实战

百川2-13B驱动OpenClaw智能客服&#xff1a;电商售后场景的自动化响应实战 1. 为什么选择OpenClaw搭建轻量级客服系统 去年双十一期间&#xff0c;我运营的小型电商店铺遭遇了售后咨询暴增的问题。临时雇佣的客服人员不熟悉产品细节&#xff0c;导致大量重复问题需要反复解答…...

实战指南:如何用Python绘制强化学习中的Reward曲线(无阴影版)

1. 强化学习Reward曲线的作用与意义 在强化学习训练过程中&#xff0c;Reward曲线就像是我们观察模型学习进度的"晴雨表"。每次训练时&#xff0c;智能体通过与环境互动获得奖励值&#xff0c;这些数据点连起来就形成了Reward曲线。我刚开始接触强化学习时&#xff0…...

Yuzu模拟器终极指南:7天学会如何选择最佳版本和优化性能 [特殊字符]

Yuzu模拟器终极指南&#xff1a;7天学会如何选择最佳版本和优化性能 &#x1f3ae; 【免费下载链接】yuzu-downloads 项目地址: https://gitcode.com/GitHub_Trending/yu/yuzu-downloads 还在为选择哪个Yuzu模拟器版本而头疼吗&#xff1f;&#x1f62b; 别担心&#x…...

OpenClaw故障排查:Qwen3-VL:30B飞书连接常见问题解决

OpenClaw故障排查&#xff1a;Qwen3-VL:30B飞书连接常见问题解决 1. 问题背景与排查准备 上周在星图平台部署Qwen3-VL:30B时&#xff0c;我遇到了OpenClaw与飞书连接的一系列"诡异"问题。从WebSocket莫名断开到模型响应超时&#xff0c;整个过程就像在解一个技术版…...