题目描述:
在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄,他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。现在,给出提莫对艾希的攻击时间序列和提莫攻击的中毒持续时间,你需要输出艾希的中毒状态总时长。
你可以认为提莫在给定的时间点进行攻击,并立即使艾希处于中毒状态。
思路分析:
可以一步一步计算他的中毒时间,这是简单的解法
还可以计算他中毒了多少次,然后减去被覆盖的时间(比如第一秒中毒,持续五秒,但是第二秒又中毒了,那么就相当于第二次被覆盖了四秒)
java代码实现:
class Solution {
public int findPoisonedDuration(int[] timeSeries, int duration) {
if(timeSeries.length == 0){
return 0;
}
int fang = timeSeries.length * duration;
for(int i = 1;i < timeSeries.length;i++){
int shi = timeSeries[i] - timeSeries[i-1] - duration;
if(shi < 0){
fang += shi;
}
}
return fang;
}
}