示例:
输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3
输出: [3,3,5,5,6,7]
提示:
你可以假设 k 总是有效的,在输入数组不为空的情况下,1 ≤...:最大堆在 Java 中对应的数据结构就是优先级队列 PriorityQueue,但优先级队列默认的排序规则是从小到大进行排序的,因此我们需要创建一个 Comparator 来改变一下排序的规则(从大到小进行排序...实现方法 4:双端队列
除了优先队列之外,我们还可以使用双端队列来查询滑动窗口的最大值,它的实现思路和最大堆的实现思路很像,但并不需要每次在添加和删除时进行元素位置的维护,因此它的执行效率会很高。...像以上这种情况下,我们就可以将元素 1 和元素 2 删掉。...总结
本文我们通过 4 种方式实现了查找滑动窗口最大值的功能,其中暴力解法通过两层循环来实现此功能,代码最简单但执行效率不高,而通过最大堆也就是优先队列的方式来实现(本题)虽然比较省事,但执行效率不高。