【LeetCode】495. 提莫攻击

495. 提莫攻击

思路

  1. 数组遍历

考虑相邻两个攻击时间点A[i]A[i+1]以及中毒时间t
如果A[i]+t<=A[i+1],那么在第i+1次攻击时,第i次攻击造成的中毒的持续时间已经结束,即持续时间为t
如果A[i]+t>A[i+1],那么在第i+1次攻击时,第i次攻击的中毒仍在持续,由于中毒状态不能叠加,因此持续时间为A[i+1]-A[i]

代码

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public:
int findPoisonedDuration(vector<int>& timeSeries, int duration) {
int n=timeSeries.size();
if(n==0) return 0;
int total = 0;
for(int i = 0; i < n - 1; i++)
total += min(timeSeries[i + 1] - timeSeries[i], duration);
return total + duration;
}
};