BX14 2023-05-06 22:28 采纳率: 95.7%
浏览 13
已结题

关于#java#的问题:java算法题

这为什么错了呢?测试用了过了,我自己试了其他的也过了

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();//输入n的值
        int arr[] = new int [num];
        for(int i =0;i < num ;i ++){
            arr[i] = scanner.nextInt();
        }//给arr数组输入值
        LinkedHashSet map1 = new LinkedHashSet();
        LinkedHashSet map2 = new LinkedHashSet();
        for(int i =0; i < num; i ++){
            if(!(map1.add(arr[i]))){//遇到有重复的值进入

                if(map1.size() > map2.size()){
                    map2.clear();
                    map2.addAll(map1);
                }
                map1.clear();
                i--;
            }
        }
        if(map1.size() > map2.size()){//循环到最后都没有重复的情况
            map2.clear();
            map2.addAll(map1);
        }
        System.out.println(map2.size());


    }

}

img

img

img

  • 写回答

1条回答 默认 最新

  • Mini厂程序员 2023-05-06 22:37
    关注

    你这肯定有问题的,你把map清了之后不是应该还要把最后一个值加进去吗?有重复后的下一次循环是包括当前这个值的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月7日
  • 已采纳回答 5月7日
  • 创建了问题 5月6日