写一个算法找出出现次数超过两次的人,自己有点想不出来 麻烦各位哥哥们帮我下

解决方案 »

  1.   

    int[] input = { 1, 2, 3, 3, 8, 6, 9, 4, 8, 5 };        for (int i = 0; i < input.length; i++) {
                for (int j = i + 1; j < input.length; j++) {
                    if (input[i] == input[j]) {
                        System.out.println(input[i]);
                        break;
                    }
                }
            }
    或用Set
      

  2.   

    int[] input = { 1, 2, 3, 3, 8, 6, 9, 4, 8, 5 };         for (int i = 0; i  < input.length; i++) { 
                for (int j = i + 1; j  < input.length; j++) { 
                    if (input[i] == input[j]) { 
                        System.out.println(input[i]); 
                        break; 
                    } 
                } 
      

  3.   

    重复过的变量不输出,第一次重复的值输出,以后再次重复的话不输出.        int ch[]={1,2,1,1,2,2,2};
           int len=ch.length;
           ArrayList list=new ArrayList();
           ArrayList list2=new ArrayList();
           list.add(ch[0]);
           int sign=0;
           int sign2=0;
           for(int i=1;i<len;i++)
           {
               sign=0;
             for(int j=0;j<list.size();j++)
             {
                Integer a=(Integer)list.get(j);
                 int b=a.intValue();
                if(ch[i]==b)
                {sign=1;
                 
                  if(sign==1)
                 {   sign2=0;
                   for(int k=0;k<list2.size();k++)
                   {
                   Integer d=(Integer)list2.get(k);
                   int c=d.intValue();
                   if(ch[i]==c)
                   {
                   sign2=1;
                   }
                       
                   }
                     list2.add(ch[i]);
                   if(sign2==0)
               System.out.println(ch[i]);
               
               }
           
                }
          
                 
             
             }
               /*
              
                **/
             if(sign==0)
             {
             list.add(ch[i]);
             }
           
           
           }
           
        
           
      

  4.   

    搞那么多二重循环,性能太低了,为什么不用HashMap,通过hash算法来判重
      

  5.   

    同意楼上 
    用hashSet
    同理
      

  6.   

    先放到HashMap去掉重复的,然后得到的集合与原来的集合比较,这样就找出重复的了
      

  7.   

    LS各位的能不能用HashSet或者HashMap写段代码出来参考一下,自己对那个也不太熟.谢谢
      

  8.   

    int[] input = { 1, 2, 3, 3, 8, 6, 9, 4, 8, 5 };
    Set<Integer> set = new HashSet<Integer>();for (int i = 0; i < input.length; i++) {
    if (!set.add(input[i])) {
    System.out.println(input[i]);
    }
    }自己想了想,还是用HashSet比较合适的。
      

  9.   

    LS的请问如果输入是int[]input={1,1,1,1,1,1,1,1,2,2,2,2,2,2,2}}
    输出是1和2,用HahHSeT 怎么处理?
      

  10.   

    自己实现吧.不过HashSet真的挺方便的.
        int[] input = { 1, 2, 3, 3, 8, 6, 9, 4, 8, 5,3,3,3,8}; 
    HashSet <Integer> set = new HashSet <Integer>(); 
    HashSet <Integer> set2 =new HashSet <Integer>();
    for (int i = 0; i  < input.length; i++) { 
    if (!set.add(input[i])) {
      if(set2.add(input[i]))
    System.out.println(input[i]); 

    }
      

  11.   

    哪在加一个辅助的Set就可以.
    int[] input = { 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2 };
    Set<Integer> set = new HashSet<Integer>();
    Set<Integer> set_temp = new HashSet<Integer>();
    for (int i = 0; i < input.length; i++) {
    if (!set.add(input[i])) {
    set_temp.add(input[i]);
    }
    } for (Object a : set_temp.toArray()) {
    System.out.println(a);
    }
      

  12.   

    线排序
    再看相邻的.
    效率最高
    nlog2n