-
代码:
class Solution: def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]: n = len(nums) # 注意 Python 默认的优先队列是小根堆 q = [(-nums[i], i) for i in range(k)] heapq.heapify(q) ans = [-q[0][0]] for i in range(k, n): heapq.heappush(q, (-nums[i], i)) while q[0][1] <= i - k: heapq.heappop(q) ans.append(-q[0][0]) return ans
-
思路:就是官方第一种思路,利用了优先队列。
LeetCode239 滑动窗口最大值
最新推荐文章于 2023-08-07 21:02:19 发布
这篇博客介绍了如何利用Python的heapq库解决LeetCode中的239题——滑动窗口最大值。作者通过创建一个小根堆来保持窗口内的元素,并在窗口滑动时进行调整,从而实时获取窗口内的最大值。这种方法有效地解决了动态维护窗口最大值的问题。
摘要由CSDN通过智能技术生成