Android面试算法题指落单的元素

//2.有一个数列,奇数个,其中有3个是单个的, 其它都是成对的,怎么找出其中任意一个单个的数
public static void singleNum(){
      int a[] = new int[]{5,-2,4,4,5,3,-9,-2};
      //记录不用参加比较的索引
      int b[] = new int[a.length/2];
      int i=0;
      int piv = a[0];
      int j=1;
      int n=0;
      while(j<a.length){
        if(piv==a[j]){
           i++;
           piv = a[i];
           b[n] = j;
           n++;
           j=i+1;
        }else if(contains(b,j)){
           i++;
           piv=a[i];
        }else{
           j++;
        }
      }
      System.out.println("单个的数为:"+ piv);
   }
   /**
    * 判断是否包含
    */
   public static boolean contains(int a[],int num){
      for(int i=0;i<a.length;i++){
        if(a[i] == num){
           return true;
        }
      }
      return false;
   }


你可能感兴趣的:(Android面试算法题指落单的元素)