Your question is Top K Closest Obstacles Stream. Start with the requirements on the right.
Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.
Given a stream of obstacle readings, where each reading is a pair (obstacle_id, distance), implement a function that returns the k closest obstacles seen so far. If the same obstacle_id appears multiple times, treat each reading independently. Return the result ordered from closest to farthest.
def top_k_closest_obstacles(readings, k):