LeetCode第一天(495.提莫攻击)

题目:

在《英雄联盟》的世界中,有一个叫 "提莫" 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。

当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。

正式地讲,提莫在 t 发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1)处于中毒状态。如果提莫在中毒影响结束 前 再次攻击,中毒状态计时器将会 重置 ,在新的攻击之后,中毒影响将会在 duration 秒后结束。

给你一个 非递减 的整数数组 timeSeries ,其中 timeSeries[i] 表示提莫在 timeSeries[i] 秒时对艾希发起攻击,以及一个表示中毒持续时间的整数 duration 。

返回艾希处于中毒状态的 总 秒数。

官解:

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

如果当前他正处于未中毒状态,则此时他的中毒持续时间应增加 duration\textit{duration}duration​,同时更新本次中毒结束时间 expired\textit{expired}expired​ 等于 timeSeriesi+duration\textit{timeSeries}i + \textit{duration}timeSeriesi+duration​;

如果当前他正处于中毒状态,由于中毒状态不可叠加,我们知道上次中毒后结束时间为 expired\textit{expired}expired​​,本次中毒后结束时间为 timeSeriesi+duration\textit{timeSeries}i + \textit{duration}timeSeriesi+duration​​,因此本次中毒增加的持续中毒时间为 timeSeriesi+duration−expired\textit{timeSeries}i + \textit{duration} -\textit{expired}timeSeriesi+duration−expired​​;

我们将每次中毒后增加的持续中毒时间相加即为总的持续中毒时间。

java 复制代码
class Solution {
    public int findPoisonedDuration(int[] timeSeries, int duration) {
        int sum = 0;
        int expired = 0;

        for(int i = 0;i < timeSeries.length;++i){
            if(timeSeries[i] >= expired){
                sum += duration;
            }else{
                sum += timeSeries[i] + duration - expired;
            }
            expired = timeSeries[i] + duration;
        }
        
        return sum;

    }
}
相关推荐
青少儿编程课堂5 分钟前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:中缀表达式求值解析
c++·python·算法·bfs·信息学竞赛
文丑颜不良啊1 小时前
LeetCode2261~2280题目解析
java·leetcode
SL_staff1 小时前
告别规则黑盒:JVS-Rules 在金融风控中的可视化决策编排实践
java·产品·全栈
逃逸线LOF2 小时前
服务网关Gateway
java·运维·gateway
灿飞屋2 小时前
Kotlin与Java虚拟机四:函数
java·python·kotlin·安卓·android jetpack
武子康2 小时前
Qwen-Drive 到底是什么:4B 级 VLM 如何成为驾驶策略底座
人工智能·算法·机器学习
阡陌数智3 小时前
Claude API新版本重大变更与安全升级指南
java·linux·安全
zh_xuan4 小时前
LeeCode 496. 下一个更大元素I
数据结构·算法·栈·单调栈
机 _ 长4 小时前
05 智算运维|8 张卡怎么才算「捆成一张」:NCCL 实测与拓扑
运维·人工智能·算法·智算运维
早起CaiCai4 小时前
【2023-01 OM】利用深度学习算法融合异质观测实现海洋场降尺度
人工智能·深度学习·算法