Given an array of integers, every element appears three times except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
Code:
<span style="font-size:14px;">class Solution {
public:
int singleNumber(int A[], int n) {
int count;
int result = 0;
for (int i = 0; i < 32; ++i) {
count = 0;
int bit = 1<<i;
for (int j = 0; j < n; ++j)
count += (A[j]&bit)!=0?1:0;
if (count%3) result+=bit;
}
return result;
}
};</span>