标签:
其实就是设置三个标志位,出现一次标志位1对应的bit变为1,出现两次标志位2对应的bit变为1,出现三次标志位三对应的bit变为1.
理解了这种思路,代码也就不难写了。
class Solution {
public:
int singleNumber(vector<int>& nums) {
int one=0;
int two=0;
int three=0;
for(int i=0;i<nums.size();i++)
{
two|=one&nums[i];
one^=nums[i];
three=one&two;
one&=~three;
two&=~three;
}
return one|two;
}
};
标签:
原文地址:http://www.cnblogs.com/qiaozhoulin/p/4748559.html