class Solution:
def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]:
self.window = MonotonicQueue()
res = []
for i in range(len(nums)):
if i < k-1:
self.window.push(nums[i])
else:
self.window.push(nums[i])
res.append(self.window.max())
self.window.pop(nums[i - k + 1])
return res
# 单调队列
class MonotonicQueue:
def __init__(self):
self.q = []
def push(self, n):
while self.q and self.q[-1]<n:
self.q.pop()
self.q.append(n)
def pop(self, n):
if self.q and self.q[0] == n:
self.q.pop(0)
def max(self):
return self.q[0]
07-18
203
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
06-17
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交