Design dynamic connectivity with alive nodes
Company: DoorDash
Role: Software Engineer
Category: Coding & Algorithms
Difficulty: Medium
Interview Round: Onsite
Quick Answer: This question evaluates understanding of dynamic graph data structures, connectivity algorithms, state management for node activation/deactivation, complexity analysis, and concurrent operation considerations.
Constraints
- Inputs are Python literals matching the function signature.
- Return a deterministic exact-match value.
Examples
Input: (4, [['activate',0],['activate',1],['connect',0,1],['isConnected',0,1],['countComponents'],['deactivate',1],['isConnected',0,1],['countComponents']])
Expected Output: [None, None, None, True, 1, None, False, 1]
Explanation: Alive filtering.
Input: (3, [['connect',0,1],['activate',0],['activate',1],['isConnected',0,1]])
Expected Output: [None, None, None, False]
Explanation: Connect ignored while endpoints dead.
Hints
- Use deterministic tie-breaking for prompts with multiple valid outputs.
- For design-style APIs, simulate operations with explicit inputs.