leetcode打卡——区间维护问题——495. 提莫攻击
Posted C_YCBX Py_YYDS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode打卡——区间维护问题——495. 提莫攻击相关的知识,希望对你有一定的参考价值。
题目
题目解析
- 维护
[l,r]
区间,根据题目给出的时间都是从小到大有序,所以通过判断与右极限位置的关系即可判断是否超出区间。 - 分类讨论:
- 如果给出的时间未超出现有的中毒时间,则扩大当前中毒右区间。
- 如果给出的时间超出现有的中毒时间,则说明会产生一个新的中毒区间,所以进行时间的更新,然后维护新的中毒区间。
- 最后肯定是会有一个中毒区间没有被计算,所以再次计算即可。
解题代码
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. 提莫攻击的主要内容,如果未能解决你的问题,请参考以下文章