Given 3*n + 1 numbers, every numbers occurs triple times except one, find it.
Example
Given [1,1,2,3,3,3,2,2,4,1] return 4
Challenge
One-pass, constant extra space.
public class Solution {
/**
* @param A : An integer array
* @return : An integer
*/
public int singleNumberII(int[] a) {
// write your code here
if(a==null ||a.length ==0)return -1;
int [] bits =new int [32];
int result =0;
for(int i=0;i<32;i++){
for(int j =0;j<a.length;j++){
bits[i]+=a[j]>>i&1;
}
bits[i]=bits[i]%3;
result |=bits[i]<<i;
}
return result;
}
}