Untitled
unknown
plain_text
a year ago
1.5 kB
6
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