(GREEDY) N meetings in one room
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