给定一个含有n个元素的整型数组a,如果元素出现的次数为奇数次,比如{1,1,1,2,2,3,3,3}则输出1,3java基础

解决方案 »

  1.   

    Map<Integer,Integer> map
    int[] str
    for(int i=0;i<str.length;i++){
    if(map.get(i)==null){
    map.put(i,1);
    }else{
    int k=map.get(i)+1;
    map.get(i)=k;
    }
    }
    最后遍历map的value,如果是奇数就输出。。
    效率比较低,但是是最简单的
      

  2.   

    如果StackOverflow上出现类似的问题,老外会说“Do your own homework”,然后再给点downvotes
      

  3.   

    排序后相同的删除,保证集合永远存在奇数个数的数字
     public static void main(String[] args){
            Integer[] o = {1 , 2 , 3 , 3 , 1 , 2 , 1 , 3 , 4 , 4 , 5 , 7 , 7 , 7 , 9 , 1 , 1} ;
            Arrays.sort(o) ;
            List list = new LinkedList() ;
            int tp = - 1 ;
            for(Integer num : o){
                if(list.contains(num)){
                    list.remove(num) ;
                }else{
                    list.add(num) ;
                }
                tp = num ;
            }
            System.out.println(list) ;
        }
      

  4.   

    public static void main(String[] args)
    {
    int[] a = new int[] { 1, 22, 32, 1, 23, 433, 3, 3, 45, 2, 34, 7, 8, 9,
    5, 6, 7, 8, 9, 0, 54, 3, 54, 56, 45, 45, 3, 7, 433, 543, 433 };
    Arrays.sort(a);
    int j = 1;
    for (int i = 0; i < a.length - 1; i++)
    {
    if (a[i] == a[i + 1])
    {
    j++;
    if (i == a.length - 2)
    {
    if (j % 2 == 1)
    {
    System.out.println(a[i]);
    }
    }
    } else
    {
    if (j % 2 == 1)
    {
    System.out.print(a[i] + ",");
    }
    j = 1;
    if (i == a.length - 2)
    {
    System.out.print(a[i + 1]); }
    } }
    }
      

  5.   

    int[] arr = {1,1,1,2,2,3,3,3};
    HashSet<Integer> set = new HashSet<Integer>();

    for(int x =0; x<arr.length; x++)
    {
    if(arr[x]%2!=0)
    {
    set.add(arr[x]);
    }
    }

    for(int i: set)
    {
    System.out.println(i);
    }