import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class FanpujinkeTest01 {     public static void main(String[] args) {         Scanner in = new Scanner(System.in);         int len = in.nextInt();         int[] tag = new int[len];         for(int i =0 ;i<len;i++){             tag[i]= in.nextInt();         }         int count = 0;         Set<Integer> set = new HashSet<>();         for(int i =0;i<len;i++){             if(set.contains(i+1) || set.contains(tag[i])){                 set.add(i+1);                 set.add(tag[i]);                 continue;             }else{                 set.add(i+1);                 set.add(tag[i]);                 count++;             }         }         System.out.println(count);         in.close();     } } 后来想的一个方法,没试过。。如果还不过的话,想了一下,还可以弄一个boolean[int],开始全为false,判断条件换为if(!boolean[i]和!boolean[tag[i]-1]),出现的都boolean[i]和boolean[tag[i]-1]都设为true,都没就count++。
点赞 9

相关推荐

03-08 18:11
门头沟学院 Java
想要实习的牛:这么牛逼的简历都吃瘪吗🌚那我不寄了
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务