classSolution{public:
ListNode*mergeKLists(vector<ListNode*>& lists){if(lists.size()==0)returnnullptr;
ListNode* dummy_node =newListNode(-1);
ListNode* cur = dummy_node;auto cmp =[](ListNode* a, ListNode* b)->bool{return a->val > b->val;};
priority_queue<ListNode*, vector<ListNode*>, function<bool(ListNode* a, ListNode* b)>>q(cmp);for(ListNode* list : lists){if(list ==nullptr)continue;
q.push(list);}while(!q.empty()){
ListNode* temp = q.top();
q.pop();
cur->next = temp;
cur = cur->next;if(temp->next !=nullptr){
q.push(temp->next);}}return dummy_node->next;}};
239. 滑动窗口最大值
classSolution{public:
vector<int>maxSlidingWindow(vector<int>& nums,int k){int n = nums.size();
priority_queue<pair<int,int>> q;for(int i =0; i < k; i++){
q.push({ nums[i], i });}
vector<int> ans;
ans.push_back(q.top().first);for(int i = k; i < n; i++){
q.push({ nums[i], i });while(q.top().second <= i - k){
q.pop();}
ans.push_back(q.top().first);}return ans;}};