7/19 每日一題( 回傳中毒的總時長)
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.
Example 1:
Input: timeSeries = [1,4], duration = 2 Output: 4 Explanation: Teemo's attacks on Ashe go as follows: - At second 1, Teemo attacks, and Ashe is poisoned for seconds 1 and 2. - At second 4, Teemo attacks, and Ashe is poisoned for seconds 4 and 5. Ashe is poisoned for seconds 1, 2, 4, and 5, which is 4 seconds in total.
Example 2:
Input: timeSeries = [1,2], duration = 2 Output: 3 Explanation: Teemo's attacks on Ashe go as follows: - At second 1, Teemo attacks, and Ashe is poisoned for seconds 1 and 2. - At second 2 however, Teemo attacks again and resets the poison timer. Ashe is poisoned for seconds 2 and 3. Ashe is poisoned for seconds 1, 2, and 3, which is 3 seconds in total.
Constraints:
1 <= timeSeries.length <= 1040 <= timeSeries[i], duration <= 107timeSeriesis sorted in non-decreasing order.
class Solution:
def findPoisonedDuration(self, timeSeries: List[int], duration: int) -> int:
time_sum=0
n=0
for i in timeSeries:
if n+1<len(timeSeries): #避免超出索引
if i+duration >= timeSeries[n+1]: #如果時間重疊扣掉
time_sum-= (i+duration)-timeSeries[n+1]
time_sum += duration
n+=1
return time_sum
-------------參考答案 zip
class Solution:
def findPoisonedDuration(self, timeSeries: List[int], duration: int) -> int:
time_sum=0
for start,end in zip(timeSeries,timeSeries[1:]):
time_sum+=min(duration,end-start)
#取攻擊間隔或是 中毒持續時間 的最小者
time_sum += duration
#計算最後一項,最後一項是完全加上持續時間的 沒有重複問題
return time_sum
標籤: leetcode

0 個意見:
張貼留言
訂閱 張貼留言 [Atom]
<< 首頁