美文网首页
提莫攻击

提莫攻击

作者: MrHitchcock | 来源:发表于2020-04-03 10:52 被阅读0次
  • 题目描述:
    在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄,他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。现在,给出提莫对艾希的攻击时间序列和提莫攻击的中毒持续时间,你需要输出艾希的中毒状态总时长。

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

    示例1:

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

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

    你可以假定时间序列数组的总长度不超过 10000。
    你可以假定提莫攻击时间序列中的数字和提莫攻击的中毒持续时间都是非负整数,并且不超过 10,000,000。

  • 链接:https://leetcode-cn.com/problems/teemo-attacking


  • 解题思路:

    1. 分两种情况考虑,假设上一次攻击为A(x),持续时间为t
    2. 第一种:下一次攻击时间开始时,上一次的中毒持续时间结束,即A(x) + t <= A(x+1),则持续时间为t
    3. 第二种:下一次攻击时间开始时,上一次的中毒持续时间未结束,即A(x) + t > A(x+1),则持续时间为A(x+1) - A(x)
    4. 最终输出是首次中毒的持续时间+后续中毒时间的总和
  • Python版:

class Solution:
    def findPoisonedDuration(self, timeSeries: List[int], duration: int) -> int:
        n = len(timeSeries)
        if n == 0:
            return 0
        
        total = 0
        for i in range(n - 1):
            total += min(timeSeries[i + 1] - timeSeries[i], duration)
        return total + duration

Tips:

  • 取min值的原因是:中毒状态不可叠加,会出现<duration的情况

  • Java版

class Solution {
    public int findPoisonedDuration(int[] timeSeries, int duration) {
        int n = timeSeries.length;
        if (n == 0) return 0;

        int total = 0;
        for(int i = 0; i < n - 1; ++i)
          total += Math.min(timeSeries[i + 1] - timeSeries[i], duration);
        return total + duration;
    }
}

相关文章

  • 提莫攻击

    在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄,他的攻击可以让敌方英雄艾希进入中毒状态。现在,给出提莫对艾希的...

  • 提莫攻击

    题目描述:在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄,他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中...

  • 提莫攻击

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/teemo-...

  • T495、提莫攻击

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

  • 数组算法相关题目--Swift

    1、提莫攻击 2、 非递减数组 3、最长且连续的的递增序列

  • 提莫队长,正在待命!——提莫攻击算法的解题笔记

    LC上最近有人出了一道新题,十分有意思,叫做 Teemo Attacking(提莫攻击)。这道算法题描述的是: 题...

  • 495. Teemo Attacking 提莫的攻击

    In LLP world, there is a hero called Teemo and his attack...

  • 2021-11-10 495提莫攻击

    思路一样的:取统计结果res=0,遍历时间序列数组,设置tmp储存前一次的序列值加上duration的值的结果,如...

  • 莫提莫

    十月 一个崭新的月份,从第一次求职失败到经验总结,最根本的原因就是过于自信与内心的无所谓。 十月份 毫无疑问带来的...

  • 提莫...

网友评论

      本文标题:提莫攻击

      本文链接:https://www.haomeiwen.com/subject/iwacphtx.html