cswork / libraryOpen practice workspace

Coding questions · Walmart Labs

Compute maximum simultaneous bus routes

This question evaluates algorithmic proficiency with interval overlap counting and concurrent event aggregation, emphasizing correctness reasoning and time/space complexity analysis. It falls under the Coding & Algorithms domain and is commonly asked to assess practical algorithm implementation and complexity-analysis skills rather than purely conceptual understanding.

You are given N bus routes, each defined by a start time (inclusive) and an end time (exclusive). Compute the maximum number of routes running simultaneously. Clarify your algorithm, justify correctness, and analyze time and space complexity.

Compute Maximum Simultaneous Bus Routes

You are given a list of bus routes, where each route is represented by a pair (start, end). A route is active from its start time inclusive to its end time exclusive, meaning it covers the interval [start, end). Compute the maximum number of routes running at the same time.

Because the input can be large, your solution should be more efficient than checking every pair of routes. If the list is empty, return 0.

Important: since end times are exclusive, a route ending at time t does not overlap with a route starting at time t.

Constraints

  • 0 <= len(routes) <= 200000
  • 0 <= start < end <= 1000000000
  • All start and end values are integers

Examples

Example 1

Input: []
Output: 0

Explanation: There are no routes, so the maximum number running at the same time is 0.

Example 2

Input: [(10, 20)]
Output: 1

Explanation: A single route is active by itself, so the maximum overlap is 1.

Hints

  1. Instead of comparing every pair of routes, sort all start times and end times separately and scan through them with two pointers.
  2. Since end times are exclusive, if a start time equals an end time, process the ending route first.