239滑动窗口最大值 堆排序然后根据下标过滤掉不属于窗口内的元素

class Solution {
public:
    vector<int> maxSlidingWindow(vector<int>& nums, int k) {
        priority_queue<pair<int,int>> p;
        for(int i=0;i<k;i++)
        {
            p.emplace(nums[i],i);
            //优先队列放置元素使用emplace 且直接写两个元素,里面不需要再套一个括号了
        }
        vector<int> res;
        res.push_back(p.top().first);//first和second不是方法后面不用加括号
        for(int i=k;i<nums.size();i++)
        {
            p.emplace(nums[i],i);
            while(!p.empty() && p.top().second<=i-k)
            {
                p.pop();
            }
            res.push_back(p.top().first);
        }
        return res;
    }
};
每天进步一点点~
原文地址:https://www.cnblogs.com/libin123/p/15399640.html