Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Kosaraju’s Strongly Connected Components (SCC) Algorithm
Kosaraju’s algorithm finds all strongly connected components in a directed graph.
It performs two depth-first searches (DFS): first on the original graph to compute finishing times, then on the transposed graph in decreasing order of finish times to identify SCCs.
Time Complexity: O(V + E)
Space Complexity: O(V + E)
Input: Directed graph as an adjacency list
Output: List of SCCs, each as a vector of vertices
The code also prints the graph and the detected SCCs for easy visualization.