从零开始刷力扣(二)——495:提莫攻击

孤心独饮 等级 491 2 0

分类:数组的遍历

题目描述:

在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄,他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。现在,给出提莫对艾希的攻击时间序列和提莫攻击的中毒持续时间,你需要输出艾希的中毒状态总时长。

你可以认为提莫在给定的时间点进行攻击,并立即使艾希处于中毒状态 示例1:

输入: [1,4], 2
输出: 4
原因: 第 1 秒初,提莫开始对艾希进行攻击并使其立即中毒。中毒状态会维持 2 秒钟,直到第 2 秒末结束。
第 4 秒初,提莫再次攻击艾希,使得艾希获得另外 2 秒中毒时间。
所以最终输出 4 秒。

示例2:

输入: [1,2], 2
输出: 3
原因: 第 1 秒初,提莫开始对艾希进行攻击并使其立即中毒。中毒状态会维持 2 秒钟,直到第 2 秒末结束。
但是第 2 秒初,提莫再次攻击了已经处于中毒状态的艾希。
由于中毒状态不可叠加,提莫在第 2 秒初的这次攻击会在第 3 秒末结束。
所以最终输出 3 。

思路

计算两次攻击的时间间隔,如果时间间隔大于duration,则持续时间加上duration,否则持续时间加上攻击间隔

代码实现

/**
 * @param {number[]} timeSeries
 * @param {number} duration
 * @return {number}
 */
const findPoisonedDuration = (timeSeries, duration) => {
    if (timeSeries.length == 0) { // 没有攻击发生
        return 0;
    }
    let res = 0;
    for (let i = 1; i < timeSeries.length; i++) {
        const gap = timeSeries[i] - timeSeries[i - 1]; // 时间间隔
        if (duration > gap) { // 覆盖了gap
            res += gap;
        } else {
            res += duration;
        }
    }
    return res + duration; // 补上最后一次攻击的一个duration
};

运行结果

从零开始刷力扣(二)——495:提莫攻击

收藏
评论区

相关推荐

【干货】Javascript千面之变幻莫测的this指向
相信很多前端人对“this”的指向是很懵逼的,因为this的指向总是变幻莫测,在不同的调用环境中,它的指向总是各不相同。 在面试中,this也是经常考的必考题之一,很多前端老鸟经常会在this这里掉坑。 接下来,看笔者来一层一层的揭开this指向的面纱。 1.事件调用环境中的this指向 <div class"b
从零开始刷力扣(一)——485:最大连续1的个数
分类:数组的遍历 题目描述: 给定一个二进制数组, 计算其中最大连续1的个数。 示例1: 输入: 1,1,0,1,1,1 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3. 思路 初始化count和maxCount,然后遍历数组,遇见1则count,并且更新与maxCount比较,若比maxCount更大,则更新m
从零开始刷力扣(二)——495:提莫攻击
分类:数组的遍历 题目描述: 在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄,他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。现在,给出提莫对艾希的攻击时间序列和提莫攻击的中毒持续时间,你需要输出艾希的中毒状态总时长。 你可以认为提莫在给定的时间点进行攻击,并立即使艾希处于中毒状态 示例1: 输入: 1,4, 2 输出: 4 原因:
Android经典面试题,也可以提升综合能力
基础问题相关 1、接口的意义百度 2、抽象类的意义百度 3、内部类的作用乐视 4、Java 虚拟机的特性百度乐视 5、哪些情况下的对象会被垃圾回收机制处理掉美团小米 6、进程和线程的区别猎豹美团 7、java中和equals和hashCode的区别乐视 8、HashMap的实现原理美团 9、stringst
js-Answers三
编程能力 手写事件侦听器,并要求兼容浏览器 JavaScript var eventUtil { getEvent: function(event) { return event || window.event; }, getTarget: function(event) { retur
Python爬取 201865 条《隐秘的角落》弹幕,发现看剧不如爬山?
本文不涉及剧透!请放心食用 最近又火了一部国产剧:《隐秘的角落》如果你没看过,那可能会对朋友圈里大家说的“一起去爬山”、“小白船”、“还有机会吗”感到莫名其妙。暑期推荐旅游小五在这个端午假期也赶紧刷完了本剧,必须要写篇文章了。由于《隐秘的角落》是在爱奇艺独播,所以数据从爱奇艺下手最直接。如果没爬过爱奇艺,可以考虑使用豆瓣、微博、知乎(电视剧数据分析 · 万
Webpack 热更新以及原理
什么是热更新模块热替换(hot module replacement 或 HMR)是 webpack 提供的最有用的功能之一。它允许在运行时更新所有类型的模块,而无需完全刷新一般的刷新我们分两种: 一种是页面刷新,不保留页面状态,就是简单粗暴,直接 window.location.reload()。 另一种是基于 WDS (Webpackde
那些为学校刷屏的人,刷的是什么?|无用但有趣
校门外店铺招牌总是换了又换,就像时间的年轮转了一圈又一圈。——《HD city》 经我们不负责任的观察,能看到朋友圈为学校集体刷屏的场面如下:一是吐槽学校又出了什么奇葩事。二是夸夸学校又得了什么奖。三是校庆时牛掰校友做了什么纪念,比如,出了首歌。 如《HD city》,这首歌是华北电力大学60周年校庆时,几位学生为华电制作的一首hiphop风格歌
JavaScript 和 Node.js 中事件循环
1.JavaScript中事件循环可以参考《JavaScript忍者秘籍第二版》第十三章,讲解的很好。JavaScript中事件循环,主要就在理解宏任务和微任务这两种异步任务。宏任务(macrotask): setTimeOut 、 setInterval 、 setImmediate 、 I/O 、 各种callback、 UI渲染 、messageCh
再搞个大点的 某小视频App X-Gorgon 分析
一、目标何以解忧,除了烤串啤酒,也只有刷刷小视频了。今天我们的目标就是看看海外版的这个小视频App的 XGorgonTIP: v18.9.4(180904) 二、步骤 Jadx搜索 "XGorgon"居然只有两个结果,很容易就定位到了这里上Frida搞一下var strUtilCls Java.use('com.ss.a.b.a');strUtilCls
重学JavaScript第1集|变量提升
变量提升就好比JavaScript引擎用一个很小的代码起重机将所有var声明和function函数声明都举起到所属作用域(所谓作用域,指的是可访问变量和函数的区域)的最高处。这句话的意思是:如果在函数体外定义函数或使用var声明变量。则变量和函数的作用域会提升到整个代码的最高处,此时任何地方访问这个变量和调用这个函数都不会报错;而在函数体内定义函数或使用va
盘点JavaScript 事件和方法提交那些事儿
大家好,我进阶学习者。一、前言提交表单时,会触发 submit 事件,它通常用于在将表单发送到服务器之前对表单进行校验,或者中止提交,并使用 JavaScript 来处理表单。form.submit() 方法允许从 JavaScript 启动表单发送。可以使用此方法动态地创建表单,并将其发送到服务器。 二、事件:submit 1\. 提交表单主要有两种方式
一篇文章带你了解JavaScript Object 对象
一、概念JavaScript 原生提供Object对象(注意起首的O是大写),介绍该对象原生的各种方法。JavaScript 的所有其他对象都继承自Object对象,即那些对象都是Object的实例。 二、Object()Object本身是一个函数,可以当作工具方法使用,将任意值转为对象。这个方法常用于保证某个值一定是对象。如果参数为空(或者为undefi
促销好礼 精彩来袭
新用户包年好礼,云服务器包年低至11.98元/年亚马逊云科技服务抵扣券亚马逊在中国与持有相关电信牌照的本地合作伙伴开展战略技术合作关系,由光环新网和西云数据向客户提供云服务。如果您需要使用位于中国大陆的可用区,请注册 亚马逊云科技 中国区域账户,使用中国大陆以外地区的可用区,请注册 亚马逊云科技 海外区域的账户。对于新客户,亚马逊云科技现推出包年返服务抵扣券
促销好礼 精彩来袭
新用户包年,云服务器包年低至11.98元/年亚马逊云科技服务抵扣券亚马逊在中国与持有相关电信牌照的本地合作伙伴开展战略技术合作关系,由光环新网和西云数据向客户提供云服务。如果您需要使用位于中国大陆的可用区,请注册 亚马逊云科技 中国区域账户,使用中国大陆以外地区的可用区,请注册 亚马逊云科技 海外区域的账户。对于新客户,亚马逊云科技现推出包年返服务抵扣券及新

热门文章

从零开始刷力扣(一)——485:最大连续1的个数

最新文章

从零开始刷力扣(一)——485:最大连续1的个数