每日一题力扣495

题目:

在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄,他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。现在,给出提莫对艾希的攻击时间序列和提莫攻击的中毒持续时间,你需要输出艾希的中毒状态总时长。

你可以认为提莫在给定的时间点进行攻击,并立即使艾希处于中毒状态。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/teemo-attacking
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

错解:

错在t根本进入不了循环

class Solution:
    def findPoisonedDuration(self, timeSeries: List[int], duration: int) -> int:
        count=0
        for i,j in enumerate(timeSeries):
            t=i+1
            while t<len(timeSeries)-1:
                if timeSeries[t]-j<duration:
                    count+=(timeSeries[t]-j)
                elif timeSeries[t]-j>=duration:
                    count+=duration
                    i=t
            count+=duration
        return count

快乐,自己改出来了

正解:

class Solution:
    def findPoisonedDuration(self, timeSeries: List[int], duration: int) -> int:
        if len(timeSeries) == 0: return 0
        count=0
        i=0
        while i<len(timeSeries)-1:
            t=i+1
            if timeSeries[t]-timeSeries[i]<duration:
                count+=(timeSeries[t]-timeSeries[i])
                i+=1
            elif timeSeries[t]-timeSeries[i]>=duration:
                count+=duration
                i=t
        count+=duration
        return count
原文地址:https://www.cnblogs.com/liuxiangyan/p/14432651.html