题目
给定一个整型数组,除了一个元素只出现一次外,其余每个元素都出现了三次。求出那个只出现一次的数。
注意:
你的算法应该具有线性的时间复杂度。你能否不使用额外的内存来实现?
代码
使用位运算
class Solution {
public:
int singleNumber(vector<int>& nums) {
int res=0;
for(int i=0;i<32;i++){
int sum=0;
for(auto &num:nums){
sum+=(num>>i)&1;
}
res|=(sum%3)<<i;
}
return res;
}
};