Untitled
unknown
java
2 years ago
1.1 kB
5
Indexable
import java.util.ArrayList; public class MaxNodesCovered { public static int findStartingNode(int[] B) { int N = B.length; int maxNodes = 0; int startingNode = 1; // Default starting node is 1 (1-based indexing) for (int i = 1; i <= N; i++) { int currentNode = i; boolean[] visited = new boolean[N + 1]; // Visited array for DFS int nodesCovered = 0; while (!visited[currentNode]) { visited[currentNode] = true; currentNode = B[currentNode - 1]; // Adjust for 1-based indexing nodesCovered++; } if (nodesCovered > maxNodes) { maxNodes = nodesCovered; startingNode = i; } } return startingNode; } public static void main(String[] args) { int[] B = {2, 3, 4, 1, 5}; // Example input int startingNode = findStartingNode(B); System.out.println("Starting Node: " + startingNode); } }
Editor is loading...