博客
关于我
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/

    你可能感兴趣的文章
    phpmyadmin导出数据库出现Fatal error: Cannot 'break' 2 levels in D:\phpstudy\WWW\phpMyAdmin
    查看>>
    phpmyadmin数据库建表及插入
    查看>>
    phpnow配置
    查看>>
    phprpc简单使用
    查看>>
    phpspider中当爬虫获取数据时如何去掉广告
    查看>>
    phpstorm 2016.3.3 激活
    查看>>
    phpstorm中Xdebug的使用
    查看>>
    phpstorm中使用svn版本控制器
    查看>>
    phpstorm配置php脚本执行
    查看>>
    PhpStorm配置远程xdebug
    查看>>
    phpStudy安装教程
    查看>>
    phpunit
    查看>>
    PHPUnit单元测试对桩件(stub)和仿件对象(Mock)的理解
    查看>>
    phpweb成品网站最新版(注入、上传、写shell)
    查看>>
    phpWhois 项目推荐
    查看>>
    Redis事务详解,吃透数据库没你想的那么难
    查看>>
    phpwind部署问题
    查看>>
    PHP_CodeIgniter Github实现个人空间
    查看>>
    php_crond:一个基于多进程的定时任务系统-支持秒粒度的任务配置
    查看>>
    PHP__call __callStatic
    查看>>