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