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

【Leetcode每日一题】模拟 - 提莫攻击(难度⭐)(45)

1. 题目解析

题目链接:495. 提莫攻击

2.算法原理

一、分情况讨论

要计算中毒的总时长,我们需要考虑时间点之间的差值,并根据这些差值来确定中毒的实际持续时间。

  1. 情况一:差值大于等于中毒时间
    假设你的角色在时间点A中毒,然后在时间点B再次中毒。如果时间点B与时间点A之间的差值大于或等于中毒时间,那么我们可以认为在时间点A中毒的效果在时间点B之前已经完全结束。换句话说,从时间点A到时间点B这段时间内,你的角色在B点中毒之前已经恢复了正常状态。因此,在这种情况下,时间点A的中毒效果可以持续整个中毒时间。

  2. 情况二:差值小于中毒时间
    然而,如果时间点B与时间点A之间的差值小于中毒时间,那就意味着在时间点B再次中毒时,时间点A的中毒效果还没有结束。这种情况下,时间点A的中毒效果只能持续到这个差值的时间,因为在时间点B,新的中毒效果会覆盖并重置中毒的计时。

二、计算总中毒时长

通过上述两种情况的讨论,我们可以遍历所有的时间点,计算每一段连续中毒的时间,并将它们累加起来,从而得到角色在整个时间段内的总中毒时长。

3.代码编写

class Solution 
{
public:int findPoisonedDuration(vector<int>& timeSeries, int duration) {int ret = 0;for(int i = 0, n = timeSeries.size(); i < n; i++){ret += min(duration, i == n - 1 ? duration : timeSeries[i + 1] - timeSeries[i]);}return ret;}
};

The Last

嗯,就是这样啦,文章到这里就结束啦,真心感谢你花时间来读。

觉得有点收获的话,不妨给我点个吧!

如果发现文章有啥漏洞或错误的地方,欢迎私信我或者在评论里提醒一声~ 

http://www.lryc.cn/news/331029.html

相关文章:

  • OPPO云VPC网络实践
  • 力扣(数组)找到所有数组中消失的数字
  • 每日面经分享(Spring Boot: part3 Service层)
  • k8s的pod访问service的方式
  • shell脚本发布docker-nginx vue2 项目示例
  • 【THM】Nmap Basic Port Scans(基本端口扫描)-初级渗透测试
  • Groovy结合Java在生产中的落地实战
  • 达梦数据库 创建外部表 [-7082]:外部表数据错误.
  • XUbuntu22.04之激活Linux最新Typora版本(二百二十五)
  • JavaScript简介
  • 使用PaddleX实现的智慧农业病虫检测项目
  • 算法学习——LeetCode力扣图论篇1(797. 所有可能的路径、200. 岛屿数量、695. 岛屿的最大面积)
  • 【IP组播】PIM-SM的RP、RPF校验
  • 前端代码规范-命名规范
  • 移动端APP测试常见面试题精析
  • 报错[Vue warn]: $listeners is readonly. $attrs is readonly.怎么解决?
  • android 14 apexd分析(1)apexd bootstrap
  • C++ 中的 vector 的模拟实现【代码纯享】
  • UE4 方块排序动画
  • 网络与并发编程(一)
  • 超详细工具Navicat安装教程
  • RN在android/ios手机剪切图片的操作
  • C语言 | Leetcode C语言题解之第6题Z字形变换
  • C 回调函数的两种使用方法
  • 医院云HIS系统源码,二级医院、专科医院his系统源码,经扩展后能够应用于医联体/医共体
  • NineData云原生智能数据管理平台新功能发布|2024年3月版
  • java Web 疫苗预约管理系统用eclipse定制开发mysql数据库BS模式java编程jdbc
  • Qt5.14.2 揭秘Qt日志神器高效诊断程序潜在隐疾
  • Mac上设置环境变量PATH
  • Redis 全景图(1)--- 关于 Redis 的6大模块