public class Solution
{
    public int FindPoisonedDuration(int[] timeSeries, int duration)
    {
        //for each attack, duration+=duration
        //in case of overlap, j - i + duration
        //we used i+1 so we check for array out of bound
        int total_time = 0;
		
		//if there was no attack
        if (timeSeries.Length == 0) return 0;
		
        for(int i=0; i<timeSeries.Length-1; i++)
        {
            if(timeSeries[i]+duration-1 < timeSeries[i + 1])
            {
                total_time += duration;
            }
            else
            {
                total_time += timeSeries[i + 1] - timeSeries[i];
            }
        }
		
		// last i+1 aka attack will be at full duration
        total_time += duration;

        return total_time;
    }
}
Comments (0)