(GREEDY) N meetings in one room

 avatar
unknown
java
6 days ago
1.0 kB
5
Indexable

class Pair {
    int start;
    int end;
    Pair(int start, int end) {
        this.start = start;
        this.end = end;
    }
}

class Solution {
    // Function to find the maximum number of meetings that can
    // be performed in a meeting room.
    public int maxMeetings(int start[], int end[]) {
        Pair[] pairs = new Pair[start.length];
        for (int i = 0; i < start.length; i++) {
            pairs[i] = new Pair(start[i], end[i]);
        }

        // Step 2: Sort pairs based on the end values
        Arrays.sort(pairs, Comparator.comparingInt(p -> p.end));
        
        for (int i = 0; i < start.length; i++) {
            start[i] = pairs[i].start;
            end[i] = pairs[i].end;
        }
        
        int prev_end = end[0], ans = 1;
        for(int i=1;i<start.length;++i)
        {
            if(start[i] > prev_end)
            {
                ans++;
                prev_end = end[i];
            }
        }
        
        return ans;
    }
}
Leave a Comment