zoukankan      html  css  js  c++  java
  • Leetcode 495

     1 class Solution:
     2     def findPoisonedDuration(self, timeSeries: List[int], duration: int) -> int:
     3         '''
     4 首先找到规律
     5 若下一个开始的时间 减去上一个开始的时间,若结果大于 持续的时间,那么就没有重合部分,直接加上持续时间
     6 若结果等于 持续时间,那么正好结束的时候,又发出了攻击,所以也没有重合,比如[1,3] 2: 那么1s开始持续两秒,到
     7 2s末,那么下一次攻击就是3s时
     8 那么如果小于 持续时间,那么直接就加上 这个结果,因为重复了这么多,所以后面要加上这么多
     9 其实也就是这个意思:比如示例2: 2 + 2 - (1 + 2) = 2 - 1 = 1
    10         '''
    11         list_time = sorted(timeSeries)
    12         total_duration = 0
    13         for i in range(len(timeSeries)):
    14             if i == 0:
    15                 total_duration += duration
    16             elif list_time[i] - list_time[i - 1] >= duration:
    17                 total_duration += duration
    18             else:
    19                 total_duration += list_time[i] - list_time[i - 1]
    20         
    21         return total_duration

    根据上面 条件语句 可以找到每次加的都是 比较时候小的那个值..也是因为若是有重复部分,那么差值肯定会比持续时间小 

    1 class Solution:
    2     def findPoisonedDuration(self, timeSeries: List[int], duration: int) -> int:
    3         list_time = sorted(timeSeries)
    4         total_duration = 0
    5         if len(timeSeries) == 0:
    6             return 0
    7         for i in range(1, len(timeSeries)):
    8             total_duration += min(list_time[i] - list_time[i - 1], duration)
    9         return total_duration + duration #因为循环里面没有计算第一个时间点
  • 相关阅读:
    调接口
    500 Internal Server Error
    htaccess跨域
    Header add Access-Control-Allow-Origin: *
    如何写jquery插件
    笔记
    互联网思维,谁的思维?
    超强js博客值得学习!!!
    学好js的步骤
    NOIP2000 进制转换
  • 原文地址:https://www.cnblogs.com/letianpaiai/p/13833918.html
Copyright © 2011-2022 走看看