消灭怪物的最大数量【力扣1921】

一、题目分析

需要满足的条件:

  • 只能在每分钟的开始使用武器
  • 武器能杀死距离城市最近的怪兽
  • 怪兽到达城市就会输掉游戏

游戏最优策略:我们可以在每分钟的开始都使用一次武器,用来杀死距离城市最近的怪兽。这样可以在力所能及的范围内,杀死最多的怪兽。

二、测试用例分析

示例1中打怪兽的策略可以打死 3只怪兽,其实也可以换成这样的打法:

  • 第 0 分钟开始时,怪物的距离是 [1,3,4],你消灭了第一个怪物。
  • 第 1 分钟开始时,怪物的距离是 [X,2,3],你消灭了第二个怪物。
  • 第 2分钟开始时,怪物的距离是 [X,X,2],你消灭了第三个怪物。
  • 所有三个怪物都可以被消灭。

注意:我认为示例1中的方法不是“最优”策略。另外大家不要被这个示例误解,看第二步的时候,竟然没有消灭任何怪物,会误认为只有怪物和城市距离为1才能打死怪物;或者误认为只有在第i分钟内才能到达的怪物,才可以在i分钟时消灭。

三、解题策略

我们可以计算,每一个怪物最晚被消灭的时间,然后对时间进行排序。可以晚点消灭的怪物就会被排到后面。

例如dist=4,speed=2:

  • 第 0 分钟开始时,怪物的距离是4,可以暂时不消灭
  • 第 1 分钟开始时,怪物的距离是2,如果这时候不消灭的话,第2分钟开始时,怪物就到达城市,游戏失败了。
  • 因此最晚消灭时间time=dist/speed-1=1;

例如dist=5,speed=2;

  • 第 0 分钟开始时,怪物的距离是5,可以暂时不消灭
  • 第 1 分钟开始时,怪物的距离是3,可以暂时不消灭
  • 第 2 分钟开始时,怪物的距离是1,如果这时候不消灭的话,第3分钟开始时,怪物就到达城市,游戏失败了。
  • 因此最晚消灭时间time=dist/speed=2;

总结

  • 若dist%speed==0:time=dist/speed-1;
  • 否则:time=dist/speed;

四、示例代码

class Solution {
public:static bool cmp(int a,int b){return a<b;}int eliminateMaximum(vector<int>& dist, vector<int>& speed) {vector<int> time;for(int i=0;i<dist.size();i++){if(dist[i]%speed[i]==0){time.push_back(dist[i]/speed[i]-1);}else{time.push_back(dist[i]/speed[i]);}}sort(time.begin(),time.end(),cmp);int sum=0;for(int i=0;i<time.size();i++){if(i<=time[i]){sum++;}else{break;}}return sum;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/67106.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mp代码生成插件

mp代码生成插件 1.下载下面的插件 2.连接测试 3.生成代码的配置 4.生成代码 红色的是刚刚生成的。 我觉得不如官方的那个好用&#xff0c;唯一的好处就是勾选的选项能够看的懂得。

COSCon'23 开源市集:共赴一场草坪上的开源派对

一年一度的开源盛会&#xff0c;第八届中国开源年会&#xff08;COSCon23 &#xff09;&#xff0c;将于10月28~29日&#xff0c;在四川成都市高新区菁蓉汇召开&#xff01;本次大会的主题是&#xff1a;“开源&#xff1a;川流不息、山海相映”&#xff01; 我们预期会有超过1…

哈希表与有序表

哈希表与有序表 Set结构 key Map结构 key-value 哈希表 哈希表的时间复杂度都是常数项级别的&#xff0c;但常数较大 增删改查的时间都是常数级别的&#xff0c;与数据量无关 当哈希表存储的值是基础数据类型&#xff08;Integer - int&#xff09;&#xff0c;哈希表中内…

有趣,复试竟不算专业课!信号学的不好,就选它!

一、学校及专业介绍 广西民族大学&#xff08;简称广西民大&#xff0c;GuangXi University for Nationalities&#xff09;&#xff0c;坐落于广西壮族自治区南宁市&#xff0c;是国家民族事务委员会和广西壮族自治区人民政府共建高校。 创建于1952年&#xff0c;原为中央民…

如何使用CSS实现一个带有动画效果的折叠面板(Accordion)?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 带有动画效果的折叠面板&#xff08;Accordion&#xff09;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个…

C语言_初识C语言指针

文章目录 前言一、指针 ... 一个内存单元多大比较合适&#xff1f;二、地址或者编号如何产生&#xff1f;三、指针变量的大小 前言 内存是电脑上特别重要的存储器&#xff0c;计算机中程序的运行都是在内存中进行的。 所以为了有效的使用内存&#xff0c;就把内存划分成一个个…

计算机竞赛 基于深度学习的人脸专注度检测计算系统 - opencv python cnn

文章目录 1 前言2 相关技术2.1CNN简介2.2 人脸识别算法2.3专注检测原理2.4 OpenCV 3 功能介绍3.1人脸录入功能3.2 人脸识别3.3 人脸专注度检测3.4 识别记录 4 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习的人脸专注度…

vue+element-ui el-table组件二次封装实现虚拟滚动,解决数据量大渲染DOM过多而卡顿问题

一、此功能已集成到TTable组件中 二、最终效果 三、需求 某些页面不做分页时&#xff0c;当数据过多&#xff0c;会导致页面卡顿&#xff0c;甚至卡死 四、虚拟滚动 一、固定一个可视区域的大小并且其大小是不变的&#xff0c;那么要做到性能最大化就需要尽量少地渲染 DOM 元素…

使用ppt和texlive生成eps图片(高清、可插入latex论文)

一、说明 写论文经常需要生成高清的图片插入到论文中&#xff0c;本文以ppt画图生成高质量的eps图片的实现来介绍具体操作方法。关于为什么要生成eps图片&#xff0c;一个是期刊要求&#xff08;也有不要求的&#xff09;&#xff0c;另一个是显示图像的质量高。 转化获得eps…

Agile Management

Agile Management 敏捷管理

大数据学习06-Spark分布式集群部署

Spark完全分布式部署 前期准备&#xff0c;每台服务器都需要配置安装Scala下载Scala安装包配置环境变量 安装spark解压配置环境修改配置 前期准备&#xff0c;每台服务器都需要配置 配置好IP vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE"Ethernet" PROX…

Facebook message tag 使用攻略

Messenger 讯息传不出去&#xff1f;无法发送FB 讯息给非好友&#xff1f; 2020年3月&#xff0c;Facebook 为了防止用户被过多的推广或垃圾讯息困扰而更新使用条款&#xff0c;现在商家要用FB传讯息给所有人&#xff08;包括非好友&#xff09;&#xff0c;应该使用 Facebook …

如何将Word转成PDF?试一下这个转换方法

Word转成PDF是现代办公中常见的需求&#xff0c;它可以确保文件的格式和内容在不同平台上保持一致&#xff0c;并且更加方便共享和打印。在这个数字化时代&#xff0c;我们经常需要将Word文档转换为PDF格式&#xff0c;无论是个人用户还是商务用户都会遇到这样的需求。那么如何…

[ 云计算 | AWS ] Java 应用中使用 Amazon S3 进行存储桶和对象操作完全指南

文章目录 一、前言二、所需 Maven 依赖三、先决必要的几个条件信息四、创建客户端连接五、Amazon S3 存储桶操作5.1. 创建桶5.2. 列出桶 六、Amazon S3 对象操作6.1. 上传对象6.2. 列出对象6.3. 下载对象6.4. 复制、重命名和移动对象6.5. 删除对象6.6. 删除多个对象 七、文末总…

企业数字化转型的关键技术有哪些?_光点科技

随着科技的不断进步和信息技术的快速发展&#xff0c;企业数字化转型已经成为保持竞争力和适应市场变化的关键举措。在这个数字化时代&#xff0c;企业需要借助先进的技术来优化业务流程、提升效率&#xff0c;以及更好地满足客户需求。以下是企业数字化转型过程中的关键技术。…

【机器学习】人工智能概述(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

华为云云服务器评测 | 从零开始:云耀云服务器L实例的全面使用解析指南

文章目录 一、前言二、云耀云服务器L实例要点介绍2.1 什么是云耀云服务器L实例2.1.1 浅析云耀云服务器L实例 2.2 云耀云服务器L实例的产品定位2.3 云耀云服务器L实例优势2.4 云耀云服务器L实例支持的镜像与应用场景2.5 云耀云服务器L实例与弹性云服务器&#xff08;ECS&#xf…

深度解析BERT:从理论到Pytorch实战

本文从BERT的基本概念和架构开始&#xff0c;详细讲解了其预训练和微调机制&#xff0c;并通过Python和PyTorch代码示例展示了如何在实际应用中使用这一模型。我们探讨了BERT的核心特点&#xff0c;包括其强大的注意力机制和与其他Transformer架构的差异。 关注TechLead&#x…

13.108.Spark 优化、Spark优化与hive的区别、SparkSQL启动参数调优、四川任务优化实践:执行效率提升50%以上

13.108.Spark 优化 1.1.25.Spark优化与hive的区别 1.1.26.SparkSQL启动参数调优 1.1.27.四川任务优化实践&#xff1a;执行效率提升50%以上 13.108.Spark 优化&#xff1a; 1.1.25.Spark优化与hive的区别 先理解spark与mapreduce的本质区别&#xff0c;算子之间&#xff08;…

【高性能计算】opencl语法及相关概念(四):结合opencv进行图像高斯模糊处理

目录 高斯模糊简介主函数&#xff1a;host端设备端函数&#xff1a;mywork.cl效果图对比 高斯模糊简介 高斯模糊是一种常用的图像处理技术&#xff0c;用于减少图像中的噪点和细节&#xff0c;并实现图像的平滑效果。它是基于高斯函数的卷积操作&#xff0c;通过对每个像素周围…