这道题首先理解题意正确,这个不同的数只会出现一次!碰见只有一个数不重复的都可以使用这种方法来解决,看代码吧,一切都在代码中。
public int singleNumber(int[] A) {
if (A == null || A.length == 0) {
return -1;
}
int result=0;
int[] bits = new int[32];
for (int i = 0; i < 32; i++) {
for(int j = 0; j < A.length; j++) {
bits[i] += A[j] >> i & 1;
}
bits[i] %= 3;
result |= (bits[i] << i);
}
return result;
}