Untitled
unknown
plain_text
a month ago
1.5 kB
1
Indexable
import java.util.*; class Solution { public List<Integer> maxMeetings(int[] start, int[] end, int n) { // Create a list of meetings with start, end, and index List<int[]> meetings = new ArrayList<>(); for (int i = 0; i < n; i++) { meetings.add(new int[]{start[i], end[i], i + 1}); // Store index as 1-based } // Sort meetings by their end times, and by index if end times are the same meetings.sort((a, b) -> a[1] == b[1] ? Integer.compare(a[2], b[2]) : Integer.compare(a[1], b[1])); // Select meetings List<Integer> result = new ArrayList<>(); int[] prev = meetings.get(0); // Select the first meeting result.add(prev[2]); // Add its index to the result for (int i = 1; i < meetings.size(); i++) { int[] cur = meetings.get(i); // Check if the current meeting starts after the previous one ends if (cur[0] > prev[1]) { result.add(cur[2]); // Add the current meeting's index prev = cur; // Update prev to the current meeting } } return result; } public static void main(String[] args) { Solution solution = new Solution(); int N = 6; int[] start = {1, 3, 0, 5, 8, 5}; int[] end = {2, 4, 5, 7, 9, 9}; List<Integer> order = solution.maxMeetings(start, end, N); for (int i : order) { System.out.print(i + " "); } } }
Editor is loading...
Leave a Comment