In this Leetcode Teemo Attacking problem solution Our hero Teemo is attacking an enemy Ashe with poison attacks! When Teemo attacks Ashe, Ashe gets poisoned for a exactly duration seconds. More formally, an attack at second t will mean Ashe is poisoned during the inclusive time interval [t, t + duration - 1]. If Teemo attacks again before the poison effect ends, the timer for it is reset, and the poison effect will end duration seconds after the new attack.
You are given a non-decreasing integer array timeSeries, where timeSeries[i] denotes that Teemo attacks Ashe at second timeSeries[i], and an integer duration.
Return the total number of seconds that Ashe is poisoned.
Problem solution in Python.
class Solution: def findPoisonedDuration(self, timeSeries: List[int], duration: int) -> int: ret = len(timeSeries) * duration # first, sum up all for i in range(len(timeSeries)-1): if timeSeries[i+1] - timeSeries[i] < duration: ret -= (duration - (timeSeries[i+1] - timeSeries[i])) # and then, weep out return ret
Problem solution in Java.
class Solution {
public int findPoisonedDuration(int[] timeSeries, int duration) {
if(timeSeries.length==0) return 0;
int result=0;
for(int i=1; i<timeSeries.length; i++){
if(timeSeries[i-1]+duration <= timeSeries[i]) result+=duration;
else{
result+= timeSeries[i] - timeSeries[i-1];
}
}
result+=duration;
return result;
}
}
Problem solution in C++.
int findPoisonedDuration(vector<int>& timeSeries, int duration) {
int total = 0;
for (int i = 0; i < timeSeries.size(); i++)
total += (i > 0 && timeSeries[i] - timeSeries[i-1] < duration ? timeSeries[i] - timeSeries[i - 1] : duration);
return total;
}
0 Comments