题目链接
题目:
分析:
- 如果两次攻击的时间差是>=中毒的持续时间duration, 那么第一次攻击的中毒时间就是duration
- 如果两次攻击的时间差是< 中毒的持续时间duration, 那么第一次攻击的持续时间就是这个时间差
- 假设攻击了n次, 那么我们从第一次攻击开始计算时间差, 那么当我们算到最后一次时, 计算的是前面的n-1次的时间, 那么最后一次攻击, 中毒时间肯定是duration, 所以我们计算结果时, 要加上duration
代码:
class Solution {
public int findPoisonedDuration(int[] timeSeries, int duration) {
int ret = 0;
for(int i = 1; i < timeSeries.length; i++){
if(timeSeries[i] - timeSeries[i-1] >= duration){
ret += duration;
}else{
ret += timeSeries[i] - timeSeries[i-1];
}
}
return ret + duration;
}
}