面试题目:一个数组中的数都出现3次,只有一个出现一次,找出这个出现一次的数
public static int findNumber(int[] array,int number){
int len = array.length;
int[] bits = new int[32];
Arrays.fill(bits, 0);
for(int i=0;i<len;i++){
for(int j=0;j<bits.length;j++){
bits[j]+=((array[i]>>j)&1);
}
}
int result=0;
for(int j=0;j<bits.length;j++){
if(bits[j]%number!=0){
result+=(1<<j);
}
}
return result;
}