#10Space Mission Launch Sequence
You are preparing a series of spacecraft modules for launch. There are numModules modules, labeled from 0 to numModules - 1.
Some modules must be activated before others. You are given an array dependencies where:
dependencies[i] = [a, b]
means that module b must be activated before module a.
Return a valid order in which all modules can be activated.
If multiple valid orders exist, return any one of them. If it is impossible to activate all modules because of circular dependencies, return an empty array.
Your solution should determine a valid activation sequence.
Expected Complexity: Time Complexity: O(numModules + dependencies.length) Space Complexity: O(numModules + dependencies.length)
Examples
Example 1
Input: numModules = 2, dependencies = [[1,0]]
Output: [0,1]
Explanation: Module 0 must be activated before module 1.
Example 2
Input: numModules = 6, dependencies = [[2,1],[4,0],[5,2],[5,3]]
Output: [1,0,3,2,4,5]
Explanation: Module 2 must come after module 1. Module 4 requires module 0. Module 5 requires both modules 2 and 3. Thus, [1,0,3,2,4,5] is one valid activation order.
Example 3
Input: numModules = 3, dependencies = [[0,2],[1,0],[2,1]]
Output: []
Explanation: The dependencies form a cycle: 2 → 0 → 1 → 2 Since each module is waiting for another module in the cycle, it is impossible to activate all modules. Therefore, return an empty array.
Constraints
- 1 <= numModules <= 5000
- 0 <= dependencies.length <= 100000
- dependencies[i].length == 2
- 0 <= a, b < numModules
- All dependency pairs are distinct.
