Leetcode495. 提莫攻击

leetcode:495. 提莫攻击 题目 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/teemo-attacking 在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。 当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。 正式地讲,提莫在 t 发起发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1)处于中毒状态。如果提莫在中毒影响结束前再次攻击 阅读详情

Every day a leetcode

题目来源:495. 提莫攻击

解法1:遍历

我们只需要对数组进行一次扫描就可以计算出总的中毒持续时间。我们记录艾希恢复为未中毒的起始时间 expired,设艾希遭遇第 i 次的攻击的时间为 timeSeries[i]。当艾希遭遇第 i 攻击时:

  • 如果当前他正处于未中毒状态,则此时他的中毒持续时间应增加 duration​,同时更新本次中毒结束时间 expired​ 等于 timeSeries[i] + duration​;
  • 如果当前他正处于中毒状态,由于中毒状态不可叠加,我们知道上次中毒后结束时间为 expired​​,本次中毒后结束时间 expired​ 为 timeSeries[i]+duration​​,因此本次中毒增加的持续中毒时间为timeSeries[i] - expired + duration;
  • 我们将每次中毒后增加的持续中毒时间相加即为总的持续中毒时间。

代码:

/*
 * @lc app=leetcode.cn id=495 lang=cpp
 *
 * [495] 提莫攻击
 */

// @lc code=start
class Solution
{
public:
    int findPoisonedDuration(vector<int> &timeSeries, int duration)
    {
        int sum = 0;
        int expired = 0; // 中毒结束时间
        int n = timeSeries.size();
        for (int i = 0; i < n; i++)
        {
            if (timeSeries[i] >= expired)
                sum += duration;
            else
                sum += timeSeries[i] - expired + duration;
            expired = timeSeries[i] + duration;
        }
        return sum;
    }
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n),其中 n 是数组 timeSeries 的长度。

空间复杂度:O(1)。

解法2:遍历

我们先将中毒时间设为最大值:timeSeries[timeSeries.size() - 1] + duration - 1。

再遍历数组,计算每两次提莫攻击间隔中未中毒的时间:timeSeries[i] - timeSeries[i - 1] - duration。

最后减去从第1秒到第一次攻击的间隔时间:timeSeries[0] - 1,即为答案。

代码:

/*
 * @lc app=leetcode.cn id=495 lang=cpp
 *
 * [495] 提莫攻击
 */

// @lc code=start
// class Solution
// {
// public:
//     int findPoisonedDuration(vector<int> &timeSeries, int duration)
//     {
//         int sum = 0;
//         int expired = 0; // 中毒结束时间
//         int n = timeSeries.size();
//         for (int i = 0; i < n; i++)
//         {
//             if (timeSeries[i] >= expired)
//                 sum += duration;
//             else
//                 sum += timeSeries[i] - expired + duration;
//             expired = timeSeries[i] + duration;
//         }
//         return sum;
//     }
// };

class Solution
{
public:
    int findPoisonedDuration(vector<int> &timeSeries, int duration)
    {
        int n = timeSeries.size();
        int sum = timeSeries[n - 1] + duration - 1;
        for (int i = n - 1; i > 0; i--)
        {
            if (timeSeries[i] - timeSeries[i - 1] > duration)
                sum -= timeSeries[i] - timeSeries[i - 1] - duration;
        }
        sum -= (timeSeries[0] - 1);
        return sum;
    }
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n),其中 n 是数组 timeSeries 的长度。

空间复杂度:O(1)。

基于WEB的报价管理系统的设计与实现 该系统采用B/S模式,后台运用SpringMVC和MyBatis搭建,利用MySQL数据库,来组织存储和管理数据,使用tomcat服务器向外提供服务。使用该系统对外有利于提高企业的综合竞争力,对内有利于提高成本管理和控制的水平,简化了报价流程、提高了工作效率、精简了报价机构,降低了成本。研究和掌握必要的信息采集和数据查询技术,是各个企业,事业单位信息化的一个重要标志。当前大多数企业采取的报价方式仍然是用EXCEL表格和人工的方式,这不仅不利于大量数据的总结,更不利于对销售利润的控制。 阅读详情

相关推荐

1panel面板实战:Docker容器存储路径迁移与优化指南

本文详细介绍了在1panel面板中迁移Docker容器存储路径的完整流程与优化方法。针对系统盘空间不足的常见问题,通过停服务、搬数据、改配置三个核心步骤,指导用户安全地将Docker数据目录迁移至更大容量的独立分区,并提供了迁移后的深度管理技巧与常见避坑指南,帮助用户优化服务器存储资源。

ol789012的博客 867

Java实现 LeetCode 495 提莫攻击

495. 提莫攻击 在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄,他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。现在,给出提莫对艾希的攻击时间序列和提莫攻击的中毒持续时间,你需要输出艾希的中毒状态总时长。 你可以认为提莫在给定的时间点进行攻击,并立即使艾希处于中毒状态。 示例1: 输入: [1,4], 2 输出: 4 原因: 在第 1 秒开始时,提莫开始对艾希进行攻击并使其立即...

南 墙 1万+

基于Hadoop的NBA篮球球员大数据分析与可视化系统大数据分析系统python的项目(源码+lw+部署文档+讲解等)

本系统以 Hadoop 为基础,致力于对 NBA 篮球球员的海量数据进行深入分析与可视化呈现。它能够收集来自多个数据源的丰富数据,包括球员比赛统计数据、身体素质数据、技术特点数据等。利用 Hadoop 的分布式存储和计算能力,对这些大规模数据进行高效处理。通过数据分析算法,挖掘球员的潜在价值和特点,如球员的得分能力趋势、篮板球效率变化、不同位置球员的技术差异等。同时,借助先进的可视化技术,将分析结果以直观的图表、图形等形式展示出来。教练和球队管理层可以通过可视化界面清晰地了解球员的综合表现和发展态势,从而制

QQ3359892174的博客 1314

#力扣LeetCode495. 提莫攻击 @FDDLC

题目描述: 495. 提莫攻击 - 力扣(LeetCode) (leetcode-cn.com) 自测用例: [1,4] 2 [1,2] 2 [1] 10 [1,3,8,14,16,20] 5 Java代码: class Solution { public int findPoisonedDuration(int[] a, int t) { int ans=t;//[1,3,8,14,16,20] 5 for(int i=1;i<a.le

LiuXingchang的博客 334

逆向实战:手把手教你分析Google DroidGuard虚拟机的加密与反调试(附Python脚本)

本文深入解析Google DroidGuard虚拟机的加密机制与反调试策略,提供从环境配置到逆向分析的完整实战指南。通过IDA Pro、Frida等工具链,详细剖析DroidGuard的信号拦截、内存校验等保护机制,并附Python脚本实现自动化分析,助力Android安全研究人员突破GMS核心组件的安全防护。

weixin_32428571的博客 313

基于51单片机的校园一卡通系统(仿真)

本次设计利用LCD1604设计可视化界面,矩阵按键执行交互,继电器模拟门的开关,系统集成考勤系统、门禁系统、消费系统、充值系统。同时利用LED灯、蜂鸣器进行指示,方便用户查看状态。

MGT_9796的博客 1554

LeetCode 495: 提莫攻击 (模拟) —— 题解

「提莫攻击」把攻击看成中毒区间:间隔 ≥ duration 加满,否则只加间隔,相邻比较合并得总时长

2601_96587588的博客 1044

别再瞎试了!用Python+正交设计,5分钟搞定你的多因素实验方案

本文介绍了如何利用Python和正交设计高效优化多因素实验方案。正交设计通过精心设计的正交表,用最少的实验次数覆盖所有因素的水平组合,显著提升实验效率。文章详细讲解了正交设计的核心优势、Python实现工具链、实验实施与数据分析方法,以及高级技巧与常见问题解决方案,帮助读者快速掌握这一强大的实验优化技术。

weixin_42526087的博客 336

模拟算法-495.提莫攻击-力扣(LeetCode)

我们可以注意到给出的t是以区间的方式给出的,就像上面的[1,4]我们就可以理解为分别在1和4发动了攻击,4的时间是最好算的,因为它是最后一次攻击,所以它的持续时间就等于duration,而1发动的攻击的中毒时长会受到下一次攻击的影响,题目上说攻击可以重置中毒计时器,所以我们需要注意给出的两次攻击的间隔时间或多次攻击的其中二次的间隔时间,这里可以用x代替间隔的时间。到这里就可以根据解析自己去实现代码了,

black_bear_white的博客 518

电流模架构Bandgap设计与仿真

带隙基准作为集成电路中一个重要模块,被广泛应用在低压差线性稳压(LDO)、充电电池保护芯片和通信电路、射频收发器、flash存储器等多种模拟及数模混合集成电路中,并且是片上集成系统(SOC)芯片中不可或缺的部分,为整个芯片提供精确的电压参考点............

qq_50968231的博客 5万+

2024年11月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(一)

软考高级考试包含三个科目:信息系统综合知识、系统架构设计案例分析和系统架构设计论文。考试形式为机考。本文主要回顾2024年下半年(2024-11-10)系统架构设计师考试上午综合知识科目的选择题,同时附带参考答案、解析和所涉知识点。由于机考时题目顺序是打乱的,本文题目所标序号只为区分不代表实际顺序。综合知识。

一几文的编程学习笔记。 9280

LeetCode 力扣每日一题 495. 提莫攻击

原题描述: 在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。 当提莫攻击艾希,艾希的中毒状态正好持续duration 秒。 正式地讲,提莫在 t 发起发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1)处于中毒状态。如果提莫在中毒影响结束 前 再次攻击,中毒状态计时器将会 重置 ,在新的攻击之后,中毒影响将会在 duration 秒后结束。 给你一个 非递减 的整数数.

m0_56937307的博客 1178

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LeetCode每日一题-495.提莫攻击

LeetCode495. 提莫攻击 题目链接地址 在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。 当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。 正式地讲,提莫在 t 发起发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1)处于中毒状态。如果提莫在中毒影响结束 前 再次攻击,中毒状态计时器将会 重置 ,在新的攻击之后,中毒影响将会在 duration 秒后结束

风小猪的博客 5154

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

leetcode 495. 提莫攻击

leetcode 495. 提莫攻击     class Solution { public int findPoisonedDuration(int[] timeSeries, int duration) { int seconds=duration; for(int i=0 ; i<timeSeries.length-1 ; i++){ if(timeSeries[i+1]-timeSeries[i]<du

qq_43214686的博客 4589

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C++ 模拟题 力扣495. 提莫攻击 题解 每日一题

该题解围绕“提莫攻击致艾希中毒”问题展开,先明确题目核心是计算重叠中毒区间总时长,指出其作为“区间重叠简化题”的练习价值,可培养场景转逻辑、边界处理能力。原理上通过比较相邻攻击间隔与中毒时长,分“不重叠(加完整时长)”“重叠(加间隔时长)”两类计算,强调最后一次攻击必加完整时长的边界点。代码实现采用O(n)时间、O(1)空间的线性遍历,兼顾简洁与高效,还补充遍历范围、特殊情况处理等细节。最后总结通用解题步骤,并预告同类“Z字形变换”题,引导举一反三。

Q741_147的博客 1043

leetcode-495.提莫攻击

【代码】leetcode-495.提莫攻击。

小勇博客 660

提莫攻击(LeetCode 495)C语言

目录 题目来源 函数介绍 输入输出 问题示例 函数实现 用法示例 结果展示 题目来源 495. 提莫攻击 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/teemo-attacking/ 函数介绍 在《英雄联盟》的世界中,有一个叫“提莫”的英雄。他的攻击可以让敌方英雄艾希进入中毒状态。 当提莫攻击艾希,艾希的中毒状态正好持续duration 秒。 正式地讲,提莫在t发起发起攻击意味着艾希在时间区间[t.

kim的博客 317

​LeetCode-每日一题 495. 提莫攻击 [Java实现] [极速]

在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。 当提莫攻击艾希,艾希的中毒状态正好持续duration 秒。 正式地讲,提莫在 t 发起发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1)处于中毒状态。如果提莫在中毒影响结束 前 再次攻击,中毒状态计时器将会 重置 ,在新的攻击之后,中毒影响将会在 duration 秒后结束。 给你一个 非递减 的整数数组 timeS.

qq_51026595的博客 753

LeetCode 495 提莫攻击

LeetCode 495 提莫攻击 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/teemo-attacking/ 博主Github:https://github.com/GDUT-Rp/LeetCode 题目: 在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。 当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。 正式地讲,提莫在 t 发起发起攻击意味着艾希在时间区间 [t

Rp的博客 296

leetcode 495 提莫攻击

由于题目对过程描述比较清晰,所以我们只需要这个过程即可求出答案。

2301_80296866的博客 305

6.2 模拟专题:LeetCode 495. 提莫攻击

LeetCode 495. 提莫攻击

shuibuxingaaa的博客 563

495. 提莫攻击-LeetCode(C++)

在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。秒时对艾希发起攻击,以及一个表示中毒持续时间的整数。当提莫攻击艾希,艾希的中毒状态正好持续。如果提莫在中毒影响结束。,在新的攻击之后,中毒影响将会在。发起攻击意味着艾希在时间区间。再次攻击,中毒状态计时器将会。返回艾希处于中毒状态的。

woshihlf的博客 363

LeetCode 495. 提莫攻击

1. 题目 在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄,他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。现在,给出提莫对艾希的攻击时间序列和提莫攻击的中毒持续时间,你需要输出艾希的中毒状态总时长。 你可以认为提莫在给定的时间点进行攻击,并立即使艾希处于中毒状态。 示例1: 输入: [1,4], 2 输出: 4 原因: 在第 1 秒开始时,提莫开始对艾希进行攻击并使其立即中毒。 ...

Michael是个半路程序员 1144

leetcode每日一题-495:提莫攻击

leetcode每日一题-495:提莫攻击 链接 提莫攻击 题目 分析 从第二位开始枚举,每次判断和前一次的间隔是多少,然后判断出中毒的描述,遍历结束后,因为最后一次施加的中毒状态一定可以持续完整的中毒事件,所以最后再加上duration. 代码 C++ class Solution { public: int findPoisonedDuration(vector<int>& timeSeries, int duration) { int re

qq_45826803的博客 1292
上一篇: Leetcode492. 构造矩形
下一篇: Leetcode496. 下一个更大元素 I
UestcXiye
博客等级 码龄8年 9030粉丝 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、付费专栏及课程。

余额充值