Start learning free

LESSON 519 OF 634 · INTERVALS

Minimum Interval to Include Each Query in C++

Practice O(n log n + q log q)

You get a vector intervals and a vector queries.

Each interval is a pair [left, right]. It holds every whole number from left to right, both ends included. Its size is right - left + 1, the count of numbers it holds.

For each query, find the smallest interval that holds it. Return a vector with the sizes of these intervals, in the order of queries. If no interval holds a query, its answer is -1.

 

Example 1:

Input: intervals = [[2,6],[4,5],[1,9],[8,8]], queries = [5,8,1,3]
Output: [2,1,9,5]
Explanation:
5 is in [2,6], [4,5] and [1,9]. The smallest is [4,5], size 2.
8 is in [1,9] and [8,8]. The smallest is [8,8], size 1.
1 is only in [1,9], size 9.
3 is in [2,6] and [1,9]. The smallest is [2,6], size 5.

Example 2:

Input: intervals = [[10,12],[30,31]], queries = [11,20,31,9]
Output: [3,-1,2,-1]
Explanation: 11 is in [10,12], size 3.
No interval holds 20 or 9, so their answers are -1.
31 is in [30,31], size 2.

Example 3:

Input: intervals = [[1,3],[3,5],[3,3]], queries = [3,3,4]
Output: [1,1,3]
Explanation: Both ends count, so 3 is in all three intervals.
The smallest is [3,3], size 1.
The second 3 gets the same answer.
4 is only in [3,5], size 3.

 

Constraints:

  • 1 to 100,000 intervals.
  • 1 to 100,000 queries.
  • Each left and right is a whole number from 1 to 10,000,000.
  • left is never greater than right.
  • Each query is a whole number from 1 to 10,000,000.
  • Intervals can overlap or repeat.
  • Both vectors come in any order.

Note:

Your solution should run in O(n log n + q log q) time, for n intervals and q queries.

STEP 1 OF 16
    Ctrl + Enter to check

    Minimum Interval To Include Each Query in C++

    Keep going with C++500+ step-by-step lessons, from your first line of code to coding interviews. Free to start.
    Start learning free