靈感來源?
- 保持更新,努力學習
- python腳本學習
?提莫攻擊
解題思路
- 初始化總中毒時間?
total
。 - 遍歷每次攻擊的時間點(從第二個開始):
- 計算當前攻擊與前一次攻擊的時間間隔?
gap
。 - 若?
gap < duration
,則本次中毒時間為?gap
;否則為?duration
。
- 計算當前攻擊與前一次攻擊的時間間隔?
- 最后加上最后一次攻擊的持續時間。
class Solution:def findPoisonedDuration(self, timeSeries: List[int], duration: int) -> int:n = len(timeSeries)if n == 0:return 0total = 0# 遍歷計算相鄰兩次攻擊的間隔for i in range(1, n):gap = timeSeries[i] - timeSeries[i-1]# 若間隔小于duration,則本次中毒時間為gap;否則為durationtotal += min(gap, duration)# 加上最后一次攻擊的持續時間total += durationreturn total
逐行解釋
class Solution:def findPoisonedDuration(self, timeSeries: List[int], duration: int) -> int:n = len(timeSeries) # 獲取攻擊次數if n == 0: # 處理空數組的特殊情況return 0total = 0 # 初始化總中毒時間# 遍歷計算相鄰兩次攻擊的間隔for i in range(1, n):# 計算當前攻擊與前一次攻擊的時間間隔gap = timeSeries[i] - timeSeries[i-1]# 如果間隔小于持續時間duration,說明兩次攻擊的中毒效果有重疊# 本次攻擊的有效中毒時間為gap(即前一次中毒結束前的時間)# 否則,本次攻擊的中毒時間為完整的durationtotal += min(gap, duration)# 最后一次攻擊的中毒時間必然是完整的duration# 因為之后沒有新的攻擊來中斷這個中毒效果total += durationreturn total