Grokking the Coding Interview: Patterns for Coding Questions
Ask Author
Back to course home

0% completed

Vote For New Content
Parikshit Murria
Java Min Heap Solution

Parikshit Murria

Apr 2, 2025

import java.util.*; /*class Interval { int start = 0; int end = 0; Interval(int start, int end) { this.start = start; this.end = end; } }*/ class Solution { public static int[] findNextInterval(Interval[] intervals) { Queue<Integer> minEndHeap = new PriorityQueue<>((i,j) -> intervals[i].end - intervals[j].end); Queue<Integer> minStartHeap = new PriorityQueue<>((i,j) -> intervals[i].start - intervals[j].start); int n = intervals.length; int[] result = new int[n]; for (int i=0; i<n; i++) { minEndHeap.offer(i); minStartHeap.offer(i); } while(!minEndHeap.isEmpty()) { int endIdx = minEndHeap.poll(); int endTime = intervals[endIdx].end; result[endIdx] = -1; while(!minStartHeap.isEmpty() && intervals[minStartHeap.peek()].start < endTime) { minStartHeap.poll(); } if (!minStartHeap.isEmpty()) { result[endIdx] = minStartHeap.peek(); } } return result; } }

0

0

Comments
Comments

On this page