公司网站打不开,第一接单网,网站兼容所有浏览器,长沙麓谷网站建设添加链接描述
class Solution:def maxSlidingWindow(self, nums: List[int], k: int) - List[int]:# 思路是使用单调队列#xff0c;把滑动窗口中最大的元素放在最头quecollections.deque()nlen(nums)res[]# 初始化队列,队头保存最大的数的下标#xff0c;因为需要下标来…添加链接描述
class Solution:def maxSlidingWindow(self, nums: List[int], k: int) - List[int]:# 思路是使用单调队列把滑动窗口中最大的元素放在最头quecollections.deque()nlen(nums)res[]# 初始化队列,队头保存最大的数的下标因为需要下标来判断滑动窗口长度for i in range(k):while que and nums[i] nums[que[-1]]:que.pop()que.append(i)res.append(nums[que[0]])# 后k个元素for i in range(k,n):while que and nums[i]nums[que[-1]]:que.pop()que.append(i)# 判断窗口大小是不是等于kwhile que and i-kque[0]:que.popleft()res.append(nums[que[0]])return res思路
单调队列队列初始化quecollections.deque()还是单调队列这个感觉很有意思初始化和判断队列窗口长度这是滑动窗口非常经典的一道题