Easy C++ solution in O(n) time and O(1) space!


#1

int Solution::singleNumber(const vector &A)
{
int num_0 = 0;
int num_1 = 0;
int a=0;
for(int x=0; x<31; x++)
{
num_0 = 0;
num_1 = 0;
for(int y=0; y<A.size(); y++)
{
if(A[y]&(1<<x))
{
num_1++;
}
else
{
num_0++;
}
}
if(num_0%3 == 0)
{
a|=(1<<x);
}
}
return a;
}


#2
int Solution::singleNumber(const vector<int> &A) 
{
    int res=0;
    for(int i=0; i<32; i++)
    {
        int x = 1<<i, sum = 0;
        
        for(auto j: A)
            sum += ((j&x)? 1: 0);
        
        if(sum%3)
            res = res | x;
    }
    return res;
}