标签:
其实就是设置三个标志位,出现一次标志位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