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

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;
    }
};

 

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


下一篇:Leetcode 239 滑动窗口