LeetCode 滑动窗口最大值
题目链接: https://leetcode-cn.com/problems/sliding-window-maximum/ 题目大意 略。 分析 可以用双端队列来维护窗口内最大值。 双端队列队首存窗口内最大值下标,双端队列内部下标单调递增,所对应值单调不增。 代码如下 1 class Solution { 2 public: 3 vector<int> maxSlidingWindow(vector<int>& nums, int k) { 4 vector< int > ans; 5 deque< int > DQ; 6 7 if(nums.empty()) return ans; 8 for(int i = 0; i <= k - 1; ++i) { 9 while(!DQ.empty() && nums[i] > nums[DQ.back()]) DQ.pop_back(); 10 DQ.push_back(i); 11 } 12 13 ans.push_back(nums[DQ.front()]); 14 for(int i = k; i < (int)nums.size(); ++i) { 15 if(i - k == DQ.front()) DQ.pop_front(); 16 while(!DQ.empty() && nums[i] > nums[DQ