个人技术分享

又是不用算法的题,但我写的复杂度很高

class Solution:
    def findPoisonedDuration(self, timeSeries: List[int], duration: int) -> int:
        sum=0
        n=len(timeSeries)
        for i in range(n):
            for j in range(timeSeries[i],timeSeries[i]+duration):
                if (i+1)!=n and j==timeSeries[i+1]:
                    break
                sum+=1
        return sum

 

我看看咋优化

class Solution:
    def findPoisonedDuration(self, timeSeries: List[int], duration: int) -> int:
        ans=0
        for i in range(len(timeSeries)-1):
            #加间距和duration之间的最小值
            ans+=min(duration,timeSeries[i+1]-timeSeries[i])
        #最后一个值直接加
        ans+=duration
        return ans