Faaez Razeen

Minimum Interval to Include Each Query

  • 3 min read
  • LC-Hard
  • Interval

3 years ago

Solution

TimeSpaceExplanation
O(n log n + q log q)O()Main TC is from sorting both the intervals and the queries
def minInterval(self, intervals: List[List[int]], queries: List[int]) -> List[int]: intervals.sort() ans = {} heap = [] # (size, heap) i = 0 for query in sorted(queries): # Add all valid intervals to min heap while i < len(intervals) and intervals[i][0] <= query: l, r = intervals[i] heappush(heap, (r - l + 1, r)) i += 1 # Pop all invalid intervals, i.e. ones that end before the current query while heap and heap[0][1] < query: heappop(heap) ans[query] = heap[0][0] if heap else -1 return [ans[query] for query in queries]