My issue
pls give me sol of this code
My code
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int T = scanner.nextInt();
for (int i = 0; i < T; i++) {
int n = scanner.nextInt();
int[] a = new int[n];
for (int j = 0; j < n; j++) {
a[j] = scanner.nextInt();
}
boolean[] visited = new boolean[n];
int count = 0;
for (int j = 0; j < n; j++) {
if (!visited[j]) {
dfs(a, visited, j);
count++;
}
}
System.out.println(count);
}
}
public static void dfs(int[] a, boolean[] visited, int node) {
if (node!= -1) {
visited[node] = true;
if (a[node]!= node) {
if (!visited[a[node]]) {
dfs(a, visited, a[node]);
}
}
}
}
}
Problem Link: Courses in an university Practice Coding Problem