⭐Meeting rooms

int Solution::solve(vector<vector<int> > &A) {
    vector<int> startTimes;
    vector<int> endTimes;
    
    for(vector<int> meetings: A) {
        startTimes.push_back(meetings[0]);
        endTimes.push_back(meetings[1]);
    }
    
    sort(startTimes.begin(), startTimes.end());
    sort(endTimes.begin(), endTimes.end());
    
    int p1 = 0, p2 = 0;
    
    int count = 0, maxCount = 0;
    while(p1 < A.size()) {
        if(startTimes[p1] < endTimes[p2]) {
            count++;
            p1++;
        } else {
            count--;
            p2++;
        }
            
        maxCount = max(maxCount, count);
    }
    
    return maxCount;
}

Last updated