题目描述
思路分析
数组来储存小朋友们的崇拜对象,然后下标+1就是对应的小朋友座号,写一个方法找出每一个小朋友的崇拜圈大小,然后找出最大的崇拜圈即可
代码实现
package lanqiao;import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] nums = new int[n];for (int i = 0; i < n; i++) {nums[i] = sc.nextInt();}int max = -1;for (int v : nums) {List<Integer> list = new ArrayList<>();int cnt = 0;int i = v;while (!list.contains(i)) {//判断list中有没有这个第i个小朋友list.add(i);//添加小朋友崇拜的人i = nums[i - 1];//找到当前小朋友崇拜的人cnt++;if (cnt > max) {max = cnt;}}}System.out.println(max);}
}