解题思路:如果数组大小为0,则直接返回0;否则,如果两次攻击(i,i+1)时间间隔小于中毒时间间隔即duration,则相当于这次攻击(第i次攻击)造成的中毒时间为两次攻击的时间间隔;如果两次攻击时间间隔大于或等于duration,则这次攻击的中毒时间为duration。
代码:
class Solution {
public:
int findPoisonedDuration(vector<int>& timeSeries, int duration) {
if(timeSeries.size()==0)
return 0;
int ret=0;
for(int i=0;i<timeSeries.size()-1;i++){
if(timeSeries[i+1]-timeSeries[i]>=duration){
ret+=duration;
}else{
ret+=timeSeries[i+1]-timeSeries[i];
}
}
ret+=duration;
return ret;
}
};