class Solution {
public:
vector<int> maxSlidingWindow(vector<int>& nums, int k) {
// 1.队列应该是由大到小的 2.队列里只保留可能成为后续最大值的元素 3.保证队列里的值都是当前窗口内的
deque<int> que;
vector<int> res;
for(int right=0;right<nums.size();right++){
while(!que.empty()&&nums[right]>=nums[que.back()]){
que.pop_back();
} // 1 and 2
que.push_back(right);
while(right-que.front()>=k) que.pop_front(); // 3
if(right>=k-1) res.push_back(nums[que.front()]);
}
return res;
}
};
Leetcode Hot100 第45题 239.滑动窗口最大值
于 2025-03-12 16:17:33 首次发布