标签:
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?
Subscribe to see which companies asked this question
Code:
class Solution {
public:
int singleNumber(vector<int>& nums) {
int ret = 0;
int mask = 1;
while(mask)
{
int countOne = 0; //number of digit 1
for(int i = 0; i < nums.size(); i ++)
{
if(nums[i] & mask)
countOne ++;
}
if(countOne % 3 == 1)
ret |= mask;
mask <<= 1;
}
return ret;
}
};
标签:
原文地址:http://www.cnblogs.com/Alex0111/p/5373811.html