题意是提莫的攻击会造成中毒效果,中毒效果会持续duration时间,提莫会在timeSeries中的时间点发动攻击。当目标处于中毒状态的时候提莫进行攻击会刷新目标的中毒效果持续时间。我们需要写一个程序来计算目标的中毒总时间。
思路很简单,我们初始化一个totaltime=0来存储总时间。然后做一个循环,次数为数组长度-1,如果现在的时间点与下一个时间点的时间差大于中毒的持续时间,那么totaltime就加上中毒的持续时间,否则加上时间差。最后我们给totaltime加上中毒持续时间,就得到了中毒的总持续时间。
public class Solution {
public int findPoisonedDuration(int[] timeSeries, int duration) {
if (timeSeries.length == 0) return 0;
int totaltime = 0;
for (int i = 0; i < timeSeries.length - 1; i++) {
if (timeSeries[i + 1] - timeSeries[i] > duration) {
totaltime += duration;
} else {
totaltime += (timeSeries[i + 1] - timeSeries[i]);
}
}
return totaltime + duration;
}
}