Track Users From Flight History
Company: Ramp
Role: Software Engineer
Category: Coding & Algorithms
Difficulty: hard
Interview Round: Technical Screen
Quick Answer: This question evaluates competency in processing and aggregating temporal event data, including time-interval reasoning, counting/grouping per user, and designing efficient data structures and algorithms for large datasets.
Part 1: User With Most Flights
Constraints
- 0 <= len(flights) <= 200000
- Each flight record contains all required keys.
- user_id is a non-empty string when a record exists.
- If several users have the same maximum count, any one of them is acceptable.
Examples
Input: ([{'departure_airport': 'SFO', 'departure_time': '2024-01-01T08:00:00Z', 'arrival_airport': 'LAX', 'arrival_time': '2024-01-01T09:00:00Z', 'user_id': 'u1'}, {'departure_airport': 'LAX', 'departure_time': '2024-01-01T11:00:00Z', 'arrival_airport': 'LAS', 'arrival_time': '2024-01-01T12:00:00Z', 'user_id': 'u1'}, {'departure_airport': 'SEA', 'departure_time': '2024-01-01T07:00:00Z', 'arrival_airport': 'DEN', 'arrival_time': '2024-01-01T10:00:00Z', 'user_id': 'u2'}, {'departure_airport': 'LAS', 'departure_time': '2024-01-01T13:00:00Z', 'arrival_airport': 'PHX', 'arrival_time': '2024-01-01T14:00:00Z', 'user_id': 'u1'}, {'departure_airport': 'JFK', 'departure_time': '2024-01-01T06:00:00Z', 'arrival_airport': 'BOS', 'arrival_time': '2024-01-01T08:00:00Z', 'user_id': 'u3'}, {'departure_airport': 'BOS', 'departure_time': '2024-01-01T09:00:00Z', 'arrival_airport': 'IAD', 'arrival_time': '2024-01-01T10:30:00Z', 'user_id': 'u3'}],)