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;
   }
相關文章
相關標籤/搜索