问题描述如下:
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?
cpp代码如下:
class Solution {
public:
int singleNumber(int A[], int n) {
int one=0,two=0,three=0;
for(int i=0;i<n;++i){
two=two|(one&A[i]);
one=one^A[i];
three=one&two;
one=one&(~three);
two=two&(~three);
}
return one;
}
};