博客
关于我
LeetCode 495 Java实现
阅读量:475 次
发布时间:2019-03-06

本文共 1152 字,大约阅读时间需要 3 分钟。

为了解决这个问题,我们需要计算艾希在《英雄联盟》中中毒的总时长。提莫的攻击可以让艾希中毒,我们需要根据提莫的攻击时间序列和中毒持续时间来计算艾希的中毒状态总时长。

方法思路

  • 问题分析: 提莫的每次攻击会让艾希中毒,中毒持续时间从提莫攻击开始的那个时间点到攻击时间点之后的一段时间。我们需要将所有中毒时间段加起来,得到艾希的总中毒时长。
  • 直观理解: 如何处理重叠的中毒期。每次攻击都会延长艾希的中毒时间。有时候,后续攻击的时间点会在前一次中毒期内,这时候下一次攻击的中毒期只能从该攻击时间点开始,至中毒结束的时间点。
  • 具体解决方案: 遍历时间序列,计算每两个相邻攻击时间的间隔。如果时间间隔大于等于中毒持续时间,那么这一段时间是有效的中毒时间;否则,仅加上该间隔时间。最后还需要加上最后一次中毒的时间,因为它可能结束后继续中毒。
  • 解决代码

    class Solution {    public int findPoisonedDuration(int[] timeSeries, int duration) {        if (timeSeries.length == 0) {            return 0;        }        int sum = 0;        for (int i = 1; i < timeSeries.length; i++) {            int currentAttack = timeSeries[i];            int previousAttack = timeSeries[i - 1];            int interval = currentAttack - previousAttack;            if (interval >= duration) {                sum += duration;            } else {                sum += interval;            }        }        sum += duration;        return sum;    }}

    代码解释

  • 初始化检查: 如果攻击时间序列为空,直接返回0。
  • 遍历时间序列: 对于每两个相邻的攻击时间,计算他们的时间间隔。
  • 时间间隔处理: 如果间隔大于等于中毒持续时间,将中毒持续时间加到总中毒时间;否则,将间隔时间加到总中毒时间。
  • 处理最后一次中毒: 最后加上中毒持续时间,因为它可能延续到最后一次攻击结束的时间点。
  • 这种方法确保了我们能够正确和有效地计算艾希的中毒总时长,考虑了所有可能的攻击时间间隔和重叠情况。

    转载地址:http://tbkdz.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现bubble sort冒泡排序算法(附完整源码)
    查看>>
    Objective-C实现bucket sort桶排序算法(附完整源码)
    查看>>
    Objective-C实现Burke 抖动算法(附完整源码)
    查看>>
    Objective-C实现Burrows-Wheeler 算法(附完整源码)
    查看>>
    Objective-C实现CaesarsCiphe凯撒密码算法(附完整源码)
    查看>>
    Objective-C实现calloc函数功能(附完整源码)
    查看>>
    Objective-C实现canny边缘检测算法(附完整源码)
    查看>>
    Objective-C实现cartesianProduct笛卡尔乘积算法(附完整源码)
    查看>>
    Objective-C实现check strong password检查密码强度算法(附完整源码)
    查看>>
    Objective-C实现chudnovsky algorithm楚德诺夫斯基算法(附完整源码)
    查看>>
    Objective-C实现CIC滤波器(附完整源码)
    查看>>
    Objective-C实现circle sort圆形排序算法(附完整源码)
    查看>>
    Objective-C实现CircularQueue循环队列算法(附完整源码)
    查看>>
    Objective-C实现clearBit清除位算法(附完整源码)
    查看>>
    Objective-C实现climbStairs爬楼梯问题算法(附完整源码)
    查看>>
    Objective-C实现cocktail shaker sort鸡尾酒排序算法(附完整源码)
    查看>>
    Objective-C实现cocktailShakerSort鸡尾酒排序算法(附完整源码)
    查看>>
    Objective-C实现CoinChange硬币兑换问题算法(附完整源码)
    查看>>
    Objective-C实现collatz sequence考拉兹序列算法(附完整源码)
    查看>>
    Objective-C实现Collatz 序列算法(附完整源码)
    查看>>