滑动窗口协议,滑动窗口机制

  滑动窗口协议,滑动窗口机制

  1.最小长度子阵列209。最小长度子阵列

  中等难度1246收藏分享切换到英文接收动态反馈

  给定一个包含n个正整数和一个正整数目标的数组。

  求连续子数组[numsl,numsl1,numsr-1,numsr]最小长度满足其sum target,返回其长度。如果没有合格的子数组,则返回0。

  示例1:

  输入:target=7,nums=[2,3,1,2,4,3]

  说明:子阵列[4,3]是这种情况下最短的子阵列。

  示例2:

  输入:目标=4,数量=[1,4,4]

  输出:1

  示例3:

  输入:target=11,nums=[1,1,1,1,1,1,1,1]

  输出:0

  解决方案:

  两个指针,开始和结束,移动方向相同。[start: end]窗口中的元素之和是否大于目标,如果是,缩小窗口范围(start前移)循环判断是否大于等于目标。

  类别解决方案:

  def minSubArrayLen(self,target: int,nums: List[int]) - int:

  n=len(nums)

  开始,结束=0,0

  res=n 1

  总计=0

  同时结束n:

  total=nums[end]

  当总计=目标时:

  res=min(res,结束-开始1)

  total -=nums[start]

  开始=1

  End=1 #窗口右侧的指针向后移动。

  如果res==n,则返回0,否则返回1

  参考:长度最小的子阵列

  转载请联系作者取得转载授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: