/*
* @lc app=leetcode.cn id=495 lang=typescript
*
* [495] 提莫攻击
*/
// @lc code=start
function findPoisonedDuration(timeSeries: number[], duration: number): number {
let right = 0,
sum = 0,
end = 0;
while (right < timeSeries.length) {
//未中毒时直接加上持续时间
if (timeSeries[right] >= end) {
sum += duration;
}
//中毒时判断剩余中毒时间,避免重复计算
else {
sum += timeSeries[right] + duration - end;
}
//保留中毒结束时间
end = timeSeries[right] + duration;
right++;
}
return sum;
}
// @lc code=end