在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄,他的攻击可以让敌方英雄艾希进入中毒状态。
现在,给出提莫对艾希的攻击时间序列和提莫攻击的中毒持续时间,你需要输出艾希的中毒状态总时长。
你可以认为提莫在给定的时间点进行攻击,并立即使艾希处于中毒状态。
注意:
- 可以假定时间序列数组的总长度不超过10 000
- 假定提莫攻击时间序列中的数字和提莫攻击的中毒持续时间都是非负整数
思路:
给出了时间序列:int [ ] timeSeries
中毒持续时间:int duration
首先我们要判断时间序列数组是否为空的情况
其次是通过遍历数组来判断中毒持续时间
要考虑相邻的两个攻击时间点t1(timeSeries[i+1])与t2(timeSeries[i])以及中毒持续时间t。
如果t1 - t2 > t, 即持续时间为t
如果t1 - t2<t ,说明中毒时间仍在持续,并且由于中毒时间不可以叠加,
所以 持续时间为 t1 - t2
因此
class Solution {
int timeCount = 0;
public int findPoisonedDuration(int[] timeSeries, int duration) {
if (timeSeries.length == 0)
return 0;
for(int i =0;i<timeSeries.length-1;i++){
timeCount += Math.min(timeSeries[i+1]-timeSeries[i],duration);
}
return timeCount+duration;
}
}