2018蓝桥杯省赛—java—C—9(小朋友崇拜圈)

【摘要】 题目描述

思路分析
数组来储存小朋友们的崇拜对象,然后下标+1就是对应的小朋友座号,写一个方法找出每一个小朋友的崇拜圈大小,然后找出最大的崇拜圈即可
代码实现
package lanqiao;

import java.util.*;

public class Main { public static void main(String[] args) { …

题目描述

在这里插入图片描述

思路分析

数组来储存小朋友们的崇拜对象,然后下标+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); }
}
  
 

答案

在这里插入图片描述

文章来源: blog.csdn.net,作者:Frank—7,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_45783660/article/details/115823607

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享