输入一个存储攻击时间的数组和攻击效果持续时间,要求输出攻击总的持续时间。注意不计算重复时间。
int findPoisonedDuration(vector<int>& timeSeries, int duration) {int time=0;decltype(timeSeries.size()) size=timeSeries.size();if(!timeSeries.empty()){for(decltype(size) i = 0; i != size-1; ++i)if(timeSeries[i]+duration>timeSeries[1+i])time+=(timeSeries[i+1]-timeSeries[i]);else time+=duration;time+=duration;return time;}else return 0;}问题的关键是比较持续时间和攻击间隔时间的大小,注意最后1次不需要进行迭代,否则下标访问会超出范围,造成未知错误。