
Problem: 1851. 包含每个查询的最小区间深夜做这道题确实挺难的也是用的优先队列但是超时了看了答案的可以一次遍历就行不需要重复遍历Codeusing pr pairint, int; class Solution { public: vectorint minInterval(vectorvectorint intervals, vectorint queries) { int n intervals.size(), s, e, i 0, m queries.size(), a; vectorint qqqq queries; sort(intervals.begin(), intervals.end()); vectorpairint, int quer; for(int i 0; i m; i) { quer.push_back({queries[i], i}); } sort(quer.begin(), quer.end()); priority_queuepr, vectorpr, decltype(greaterpr()) pq; vectorint ret(m, -1); for(auto [q, ind] : quer) { while(i n intervals[i][0] q) { s intervals[i][0]; e intervals[i][1]; pq.push({e - s 1, e}); i; } while(!pq.empty() pq.top().second q) { pq.pop(); } if(!pq.empty()) ret[ind] pq.top().first; } return ret; } };