leetcode 495. 提莫攻击(esay)(优质解法)

链接:495. 提莫攻击

代码:

java 复制代码
class Solution {
    public int findPoisonedDuration(int[] timeSeries, int duration) {
        int time=0;
        for(int i=1;i<timeSeries.length;i++){
            if(timeSeries[i]-timeSeries[i-1]<duration){
                time+=timeSeries[i]-timeSeries[i-1];
            }else{
                time+=duration;
            }
        }
        time+=duration;

        return time;
    }
}

题解:

timeSeries 数组代表刷新中毒状态的时间,要计算总共中毒的时间,可以通过计算前后刷新中毒状态,中间持续的中毒时间获得,由下图可以很好的描述

根据上图,假设 timeSeries 数组中的内容为 1,2,4,7 ,这是刷新中毒状态的时间,在时间 1 和 2 之间中毒的持续时间为 2 - 1 =1,此时 timeSeries i - timeSeries i-1 = 1 < duration ,这是在时间 1 中的毒

在时间 2 和 4 之间 timeSeries i - timeSeries i-1 = 4 - 2 =2 = duration ,中毒的持续时间为 duration=2 ,这是在时间 2 中的毒

在时间 4 和 7 之间,timeSeries i - timeSeries i-1 = 7 - 4 =3 > duration ,中毒的持续时间为 duration=2 ,这是在时间 4 中的毒

在时间 7 中的毒持续 duration = 2 秒

根据上面的分析我们就可以得到总共中毒的时间,简单来说就是统计每次发起攻击中毒的持续时间,如果中毒的持续时间还没有到 duration 就被刷新了,就代表本次发起攻击中毒的持续时间结束

相关推荐
CHANG_THE_WORLD1 小时前
深入理解递归:从函数调用到调用栈的完整执行过程
java·开发语言·算法
测试老哥2 小时前
接口自动化测试分层设计与实践总结
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
风栖柳白杨3 小时前
【面试】职位要求_准备
面试·职场和发展
geovindu3 小时前
go:Backtracking Algorithm
开发语言·后端·算法·golang·回溯算法
微露清风3 小时前
模拟算法学习记录
学习·算法
KaMeidebaby4 小时前
卡梅德生物技术快报 | abcore 纳米抗体文库:从PNAS论文看纳米抗体理性设计:构象熵作为亲和力预测新指标的技术实现
java·开发语言·人工智能·算法·机器学习
问商十三载4 小时前
2026法律行业AI引擎生成式优化怎么优化?三层专业加固提排名,零成本提33%引用率附适配表
java·前端·人工智能·算法
zander2584 小时前
138. 随机链表的复制
数据结构·算法·链表
过期动态4 小时前
【LeetCode 热题 100】找到字符串中所有字母异位词
java·数据结构·算法·leetcode·职场和发展·rabbitmq