leetcode-239. 滑动窗口最大值

 

leetcode-239. 滑动窗口最大值

 

class Solution {
public:
    vector<int> maxSlidingWindow(vector<int>& nums, int k) {
        priority_queue<pair<int ,int>> q;
        vector<int> res;
        //规则:pair的比较,先比较第一个元素,第一个相等比较第二个。
        for(int i = 0; i < k; i++){
            q.emplace(nums[i],i);
 
        }
        res.push_back(q.top().first);
        for(int i = k; i < nums.size(); i++){
   

            q.emplace(nums[i], i);  // 注意使用emplace函数插入pair元素
            while(q.top().second <= i-k) // 判断当前栈顶元素的下标是否在窗口之外,如果在,弹出
                q.pop();
            // cout<<"value: "<<q.top()<<endl;
            res.push_back(q.top().first);
  
        }
        return res;
    }
};

 

上一篇:LeetCode 239. 滑动窗口最大值


下一篇:leetcode-华为专题-239. 滑动窗口最大值