https://leetcode.com/problems/teemo-attacking/#/description
题目过长 这里就不放啦
翻译
- 给定一个升序的数组如【1, 4】和一个数字 【2】
- 代表在1, 4时刻进行下毒,每次下毒持续2秒
- 这样【1, 4】 和【2】的中毒持续时间是4= 【1,2】 + 【4, 5】
- 需要注意的是,中毒事件不能叠加,即剩余还有1秒时,又中了新的持续2秒的毒,那么中毒持续时间为2s
- 举例如下 【1, 2】 和【2】
- t=1,所下的毒应该持续到t=3
- 但是这里在t=2时在还剩1s解毒时,又下了一次毒,这样毒持续的时间为2 而不是2+1
- 所以 【1, 2】 和【2】 中毒持续时间为【1, 2, 3】= 3
思路
- re = 0, old_end =
- new_end = timeSeries[i-1] + duration - 1
- 中毒持续时间为min(duration,new_end - old_end)
- old_end = new_end
class Solution(object):
def findPoisonedDuration(self, timeSeries, duration):
"""
:type timeSeries: List[int]
:type duration: int
:rtype: int
"""
re = 0
old_end = -1
for i in range(len(timeSeries)):
new_end = timeSeries[i] + duration - 1
re += min(duration, new_end - old_end)
old_end = new_end
return re
网友评论