Java难题 之 查找所有不同的重复元素

难题:给定n个正整数的输入数组,其中整数按随机顺序排列。该数组中的每个数字可以出现多次。您需要找到所有不同的重复元素,并将所有这些元素放在一个数组中,即output1。如果input1中没有数字重复,则output1应该为{-1}。

输入规格:input1:input2中的元素数(n)输入2:n个正整数的数组

输出规范:output1:在input2中重复的不同元素的数组

Example 1: input1 : 6 input2 : {4,4,7,8,8,9} output1 : {4,8} 
Example 2: input1 : 8 input2 : {2,3,6,8,90,58,58,60} output1 : {58} 
Example 3: input1 : 7 input2 : {3,6,5,7,8,19,32} output1 : {-1}

import java.util.HashSet;
import java.util.Set;
 
public class DuplicatesInArray
{
    public static void main(String[] args)
    {
        Integer[] array = {1,2,3,4,5,6,7,8};  //input 1
        int size = array.length;              //input 2
         
        Set<Integer> set = new HashSet<Integer>();
        Set<Integer> duplicates = new HashSet<Integer>();
          
        for(int i = 0; i < size ; i++)
        {
            if(set.add(array[i]) == false)
            {
                duplicates.add(array[i]);
            }
        }
         
        if(duplicates.size() == 0)
        {
            duplicates.add(-1);
        }
         
        System.out.println(duplicates);
    }
}

上面的程序将从数组中找到所有重复的元素,并将它们放入单独的集合中。您可以在此处找到有关此逻辑的更多讨论://how2codex.com/java/interviews-questions/find-duplicate-elements-in-an-array/

学习愉快!

saigon has written 1440 articles

Leave a Reply