FastPrepGet Meeting Intervals (Google Bangalore)

Get Meeting Intervals (Google Bangalore)

Google logoGoogle● MediumFULLTIMEONSITE INTERVIEW
Learn

Problem statement

  • You have a list of meetings in your calendar with a start and end time.
  • You are very busy, so meetings can overlap.
  • You also have one "Do Not Schedule" (DNS) interval during which you don't attend any meeting.
  • Any meeting schedule that overlaps with a DNS slot is automatically cut such that it does not overlap with the DNS slot anymore.

Return a list of non-overlapping time intervals when you are in a meeting.

Complete the function getMeetingIntervals in the editor.

getMeetingIntervals has the following parameters:

  1. 1. int[][] meetings: an arr of intervals representing meeting times
  2. 2. Interval dns: an interval representing the "Do Not Schedule" time

int[][]: an arr of non-overlapping intervals when you are in a meeting

Function

getMeetingIntervals(meetings: int[][], dns: int[]) → int[][]

Examples

Example 1

meetings = [[1, 7], [5, 10], [12, 30], [22, 30], [40, 50], [60, 70]]dns = [18, 25]return = [[1, 10], [12, 18], [25, 30], [40, 50], [60, 70]]

🦔

Constraints

  • 0 ≤ meetings.length ≤ 2 * 10^5
  • Every interval is half-open: it includes its start and excludes its end.
  • For every meeting [start, end] and for dns = [dnsStart, dnsEnd], the start is strictly less than the end.
  • Interval endpoints are integers in [-10^9, 10^9].
  • Return the resulting non-overlapping intervals in increasing start-time order.

More Google problems

See Google hiring insights
public int[][] getMeetingIntervals(int[][] meetings, int[] dns) {
  // write your code here
}
meetings[[1, 7], [5, 10], [12, 30], [22, 30], [40, 50], [60, 70]]
dns[18, 25]
expected[[1, 10], [12, 18], [25, 30], [40, 50], [60, 70]]
Checking account…