Untitled
unknown
java
2 years ago
1.1 kB
6
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...