C语言代码实现
int findPoisonedDuration(int* timeSeries, int timeSeriesSize, int duration) {
int i ;
int sum;
sum = duration; //最后一次是整间隔。
for (i = 0; i < timeSeriesSize-1; i++) {
if (timeSeriesSize == 1) {
break;
}
if (timeSeries[i+1] - timeSeries[i] >=duration ) { //相隔d或大于d攻击,正常加d。
sum += duration;
}
if (timeSeries[i+1] - timeSeries[i] < duration) {
sum += timeSeries[i+1]-timeSeries[i]; //攻击小于间隔就加间隔。
}
}
return sum;
}
解题技巧:
1.注意审题与条件。题目所给出的duration是变化量,但第一次代码默认duration为2,提交错误。
2.注重思路,sum+=间隔是重点。
3.自己要考虑到示例以外的情况。