分别存储每一个bit位1出现的次数,然后对3取模
public class Solution {
public int singleNumber(int[] A) {
int[] bitNum = new int[32];
int result =0;
for (int j = 0; j < 32; j++) {
for (int i = 0; i < A.length; i++) {
int ele = A[i];
int ifExist = ele & (1 << j);
if (ifExist != 0) {
bitNum[j] = ++bitNum[j];
}
}
bitNum[j] = bitNum[j]%3;
if(bitNum[j] != 0){
result |= bitNum[j]<<j;
}
}
return result;
}
}