首页 > 其他分享 >Leedcode-提莫攻击

Leedcode-提莫攻击

时间:2024-05-16 15:52:53浏览次数:12  
标签:count 攻击 中毒 Leedcode 时间 timeSeries time duration 提莫

自己写的,中间算法有遗漏的遍历

class Solution:
    def findPoisonedDuration(self, timeSeries: List[int], duration: int) -> int:
        if duration == 0:  # 如果duration为0,则返回0,因为没有中毒时间
            return 0
        count = 0  # 初始化中毒总时间
        time_box = [-1, -1]  # 初始化时间框架的左右边界,用于跟踪中毒状态
        n = len(timeSeries)  # 获取攻击时间序列的长度
        for i in range(n):
            if timeSeries[i] > time_box[1]:  # 如果当前攻击时间在之前中毒状态结束后,即在时间框架右边界之后
                time_box = [timeSeries[i], timeSeries[i] + duration - 1]  # 更新时间框架为当前攻击时间至中毒持续时间结束
                count += time_box[1] - time_box[0] + 1  # 将当前中毒时间段的长度加到中毒总时间上
            else:  # 如果当前攻击时间在之前中毒状态结束之前,即在时间框架右边界之前
                time_box = [timeSeries[i], timeSeries[i] + duration - 1]  # 更新时间框架为当前攻击时间至中毒持续时间结束
                count += (timeSeries[i] - timeSeries[i - 1])  # 将当前攻击时间与上一次攻击时间之间的间隔加到中毒总时间上
        if count == 0:  # 如果中毒总时间为0,说明所有攻击时间都在同一时间点
            return n + duration - 1  # 返回总攻击次数加上中毒持续时间减去1(因为第一次攻击不会受到中毒时间的影响)
        else:
            return count  # 返回中毒总时间

 gpt优化:

class Solution:
    def findPoisonedDuration(self, timeSeries: List[int], duration: int) -> int:
        if duration == 0:  # 如果中毒持续时间为0,则返回0,因为没有中毒时间
            return 0
        
        count = 0  # 初始化中毒总时间
        end_time = -1  # 初始化中毒状态结束时间
        
        for time in timeSeries:
            if time > end_time:  # 当前攻击时间在上次中毒结束时间之后
                count += duration  # 直接加上持续中毒时间
            else:  # 当前攻击时间在上次中毒结束时间之前
                count += time + duration - 1 - end_time  # 只累加新攻击带来的额外中毒时间
            end_time = time + duration - 1  # 更新中毒状态结束时间为当前攻击时间加上持续时间减去1
        
        return count  # 返回总中毒时间

 

标签:count,攻击,中毒,Leedcode,时间,timeSeries,time,duration,提莫
From: https://www.cnblogs.com/yyyjw/p/18196097

相关文章

  • Leedcode-构造矩形
    自己写的classSolution:defconstructRectangle(self,area:int)->List[int]:#计算给定面积的平方根root=area**0.5#初始化结果列表,默认为[1,area],即长为面积,宽为1的情况temp=[1,area]#如果面积是一个完全......
  • Leedcode-最大连续 1 的个数
    自己写的:fromtypingimportListclassSolution:deffindMaxConsecutiveOnes(self,nums:List[int])->int:#初始化最大连续1的计数器和临时连续1的计数器count=0temp=0#获取列表长度n=len(nums)#初......
  • Leedcode-密钥格式化
    自己写的:classSolution:deflicenseKeyFormatting(self,s:str,k:int)->str:#将字符串转换为列表,方便操作new_S=list()#遍历输入字符串foriins:#如果当前字符不是'-',则添加到新列表中ifi!......
  • pwn知识——劫持IO-file_jumps攻击和environ攻击
    导言哎,异或fd指针真是令人讨厌IO_file_jumps_IO_lock_t_IO_stdfile,_IO_wide_data(针对宽字节的虚函数表),_IO_FILE_plus(含有stdin,stdout)三者均被定义为IO_file_jumps原理IO_file_jumps是一个全局变量符号,存有以下符号这个结构体主要跟缓冲区有关,比如调用puts,fread,fgets,ex......
  • Leedcode-数字的补数
    自己写的:classSolution:deffindComplement(self,num:int)->int:#初始化一个空字符串,用于存储二进制表示bin_str=''#将输入的数字转换为二进制表示,存储在bin_str中whilenum>0:bin_str=str(num......
  • 有研究表明,90% 的企业攻击始于钓鱼邮件
    电子邮件是重要的通信方式之一。电子邮件几乎可以立即发送到目标地址,这使得信息传递变得非常迅速,无论接收者位于世界的哪个角落,只要有互联网连接,他们都可以收到电子邮件,与社交媒体或即时通讯应用相比,电子邮件通常更受重视和信任。近日,安全人员研究表明,过去30天,62%的恶意文件通过......
  • Leedcode-岛屿的周长
    自己写的:classSolution:defislandPerimeter(self,grid:List[List[int]])->int:#初始化周长计数器count=0#遍历二维网格的行foriinrange(len(grid)):#遍历二维网格的列forjinrange(len(gr......
  • 常见的安全模型、攻击模型和隐私需求
    参考文献:MiaoY,YangY,LiX,etal.ComprehensiveSurveyonPrivacy-PreservingSpatialDataQueryinTransportationSystems[J].IEEETransactionsonIntelligentTransportationSystems,2023.根据文章内容,Threatmodel主要有以下两种类型:1.Honest-but-Curious......
  • leedcode-重复的子字符串
    classSolution:defrepeatedSubstringPattern(self,s:str)->bool:#获取字符串的长度n=len(s)#初始化指针指向字符串的最后一个字符rptr=n-1#在指针到达字符串的第一个字符之前循环whilerptr>0:......
  • leedcode-分发饼干(贪心算法)
    自己写的,没有使用排序,会超出时间限制:classSolution:deffindContentChildren(self,g:List[int],s:List[int])->int:iflen(s)==0:return0count=0foriinrange(len(g)):mydict={}forjin......