/*本题最直观的方法是将数字转化为二进制进行求解:
用数组对整型数的每一比特位进行统计,然后对它取模3,
最后用统计数不为0的比特位组成数字。
参考自:https://github.com/soulmachine/leetcode*/
class Solution {
public:
int singleNumber(int A[], int n) {
vector<int> num(sizeof(int)*8, 0);
for(int i = 0; i < n; ++i){
for(int j = 0; j < num.size(); ++j){
num[j] += (A[i] >> j) & 1;
num[j] %= 3;
}
}
int res(0);
for(int i = 0; i < num.size(); ++i){
res += (num[i] ? (1 << i) : 0);
}
return res;
}
};
LeetCode之Single Number II
最新推荐文章于 2020-04-24 15:27:38 发布