1. 程式人生 > 其它 >leetcode-華為專題-1353. 最多可以參加的會議數目

leetcode-華為專題-1353. 最多可以參加的會議數目

class Solution {
public:

    static bool cmp(vector<int> &a, vector<int> &b){
        if(a[0]!=b[0])
            return a[0]<b[0];
        else
            return a[1]<b[1];
    } 

    int maxEvents(vector<vector<int>>& events) {
        if(events.size()==0)
            
return 0; sort(events.begin(), events.end(), cmp); priority_queue<int ,vector<int>, greater<int>> minheap; vector<int> temp; temp = {events[0][0], events[0][1]}; int cot = 0; int j = 0; for(int i = 1; i <= 1e5; i++){ // i 代表第幾天
// 將開始時間等於i的結束時間加入堆 while(j<events.size()&&events[j][0]==i){ // minheap.push(events[j++][1]); } // 將結束時間小於今天的,彈出堆 while(!minheap.empty()&& minheap.top()<i){ minheap.pop(); }
// 當前堆不空,則當前堆頂是結束時間最短的,結果加1,再將堆頂彈出 if(!minheap.empty()){ cot++; minheap.pop(); } } return cot; } };