leetcode打卡——区间维护问题——495. 提莫攻击

Posted C_YCBX Py_YYDS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode打卡——区间维护问题——495. 提莫攻击相关的知识,希望对你有一定的参考价值。

题目


OJ平台

题目解析

  • 维护 [l,r] 区间,根据题目给出的时间都是从小到大有序,所以通过判断与右极限位置的关系即可判断是否超出区间。
  • 分类讨论:
  1. 如果给出的时间未超出现有的中毒时间,则扩大当前中毒右区间。
  2. 如果给出的时间超出现有的中毒时间,则说明会产生一个新的中毒区间,所以进行时间的更新,然后维护新的中毒区间。
  3. 最后肯定是会有一个中毒区间没有被计算,所以再次计算即可。

解题代码

class Solution {
public:
    int findPoisonedDuration(vector<int>& timeSeries, int duration) {
        int l = timeSeries[0],r = l+duration-1;
        int sum = 0;
        for(auto&&t:timeSeries){
            if(t<=r){
                r = t+duration-1;
            }else{
                sum += (r-l)+1;
                l = t;
                r = t+duration-1;
            }
        }
        sum += (r-l)+1;
        return sum;
    }
};

以上是关于leetcode打卡——区间维护问题——495. 提莫攻击的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode刷题题解:495. 提莫攻击

小Y学算法⚡️每日LeetCode打卡⚡️——49.汇总区间

算法刷题打卡

LeetCode 五月打卡-day20

3.LeetCode刷题-合并区间

3.LeetCode刷题-合并区间