在二进制的每个位置上,
数组的每个数的二进制都相加,最终得到的值,要么%3==1
要么%3==0
%3==1组成的二进制就是那个单独的数字
class Solution {
public:
int singleNumber(vector<int>& nums) {
int ans=0;
for(int i=0;i<32;i++)
{
int x=0;
for(int j=0;j<nums.size();j++)
{
x += ((nums[j]>>i)&1);
}
if(x%3==1)
{
ans |= (1<<i);
}
}
return ans;
}
};