Uber·Software Engineer·Onsite - Coding / Algorithms
- Given a list of packages and their build dependencies, produce a valid build order such that every package is built only after its dependencies. If no valid order exists due to a cycle, report that. You also need to explain your algorithm, analyze complexity, handle disconnected components and duplicate dependencies, and compare a BFS in-degree approach with a DFS post-order approach.
“This is basically topological sort dressed up in a packaging scenario, which I recognized pretty fast.”