<awangdev>Single Number III_1.java
public List<Integer> singleNumberIII(int[] A) {
        if (A == null || A.length == 0) {
            return null;
        }
        List<Integer> rst = new ArrayList<Integer>();
        int xor = 0;
        for (int i = 0; i < A.length; i++) {
            xor ^= A[i];
        }
        int bitOnePos = 0;
        for (int i = 0; i < 32; i++) {
            if ((xor >> i & 1) == 1) {
                bitOnePos = i;
            }
        }
        int rstA = 0;
        int rstB = 0;
        for (int i = 0; i < A.length; i++) {
            if ((A[i] >> bitOnePos & 1) == 1) {
                rstA ^= A[i];
            } else {
                rstB ^= A[i];
            }
        }
        rst.add(rstA);
        rst.add(rstB);
        return rst;
    }
public List < Integer > var_1 ( int [ ] var_2 ) {
  if ( var_2 == null || var_2 . length == 0 ) {
    return null ;
  }
  List < Integer > var_8 = new ArrayList < Integer > ( ) ;
  int var_9 = 0 ;
  for ( int var_10 = 0 ;
  var_10 < var_2 . length ;
  var_10 ++ ) {
    var_9 ^= var_2 [ var_10 ] ;
  }
  int var_11 = 0 ;
  for ( int var_10 = 0 ;
  var_10 < 32 ;
  var_10 ++ ) {
    if ( ( var_9 >> var_10 & 1 ) == 1 ) {
      var_11 = var_10 ;
    }
  }
  int var_14 = 0 ;
  int var_15 = 0 ;
  for ( int var_10 = 0 ;
  var_10 < var_2 . length ;
  var_10 ++ ) {
    if ( ( var_2 [ var_10 ] >> var_11 & 1 ) == 1 ) {
      var_14 ^= var_2 [ var_10 ] ;
    }
    else {
      var_15 ^= var_2 [ var_10 ] ;
    }
  }
  var_8 . add ( var_14 ) ;
  var_8 . add ( var_15 ) ;
  return var_8 ;
}
