一、题目
函数原型:int findPoisonedDuration(int* timeSeries, int timeSeriesSize, int duration)
二、思路
遍历数组timeSeries,如果 元素值+duration <= 下一元素值 ,持续时间为duration;如果 元素值+duration > 下一元素值,持续时间为duration - (元素值+duration - 下一元素值)
如果遍历到最后一个元素,那么中毒持续时间为duration
三、代码
int findPoisonedDuration(int* timeSeries, int timeSeriesSize, int duration) { int time=0;//总持续时间 for(int i=0;i<timeSeriesSize;i++) { int tmp=timeSeries[i]+duration;//当前元素值+持续时间 if(i==timeSeriesSize-1)//判断是否为最后一个元素 { time+=duration;//最后一个元素,持续时间直接为duration } else//不是最后一个元素 { if(tmp<=timeSeries[i+1])//当前元素值+持续时间≤下一元素值 { time+=duration; } else//当前元素值+持续时间>下一元素值 { time=time+duration-(tmp-timeSeries[i+1]); } } } return time; }