剑指 Offer 59 - I. 滑动窗口的最大值
思路:
题解:
优先队列O(nlogn)
class Solution { |
单调队列O(n)
由于我们需要求出的是滑动窗口的最大值,如果当前的滑动窗口中有两个下标 ii 和 jj,其中 ii 在 jj 的左侧(i <j),并且 ii 对应的元素不大于 jj 对应的元素(nums[i]<nums[j]),那么会发生什么呢?
当滑动窗口向右移动时,只要 ii 还在窗口中,那么 jj 一定也还在窗口中,这是 ii 在 jj 的左侧所保证的。因此,由于 \textit{nums}[j]nums[j] 的存在,\textit{nums}[i]nums[i] 一定不会是滑动窗口中的最大值了,我们可以将 \textit{nums}[i]nums[i] 永久地移除
class Solution { |