Untitled
unknown
plain_text
9 months ago
1.2 kB
5
Indexable
class Solution {
public int minGroups(int[][] intervals) {
int n = intervals.length;
// Create arrays to store start and end points
int[] start = new int[n];
int[] end = new int[n];
// Fill the start and end arrays
for (int i = 0; i < n; i++) {
start[i] = intervals[i][0];
end[i] = intervals[i][1];
}
// Sort the start and end arrays
Arrays.sort(start);
Arrays.sort(end);
// Initialize the two pointers and counters
int count = 0; // Current number of platforms needed
int ans = 0; // Maximum platforms needed
int i = 0, j = 0;
// Use two pointers to traverse both arrays
while ((i<n) && (j<n)) {
// If an interval is starting, increment the count
if (start[i] <= end[j]) {
count++;
ans = Math.max(ans, count);
i++;
}
// If an interval is ending, decrement the count
else {
count--;
j++;
}
}
return ans;
}
}Editor is loading...
Leave a Comment