您的位置:首页 > 其它

[LeetCode] Single Number II

2014-07-03 16:31 316 查看
int singleNumber(int A[], int n) {
int* cnt = new int[8*sizeof(int)];
for (int i = 0; i < 8*sizeof(int); i++)
{
cnt[i] = 0;
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < 8*sizeof(int); j++)
{
int bitIsOne = (A[i]>>j)&1;
cnt[j] += bitIsOne;
}
}
int num = 0;
for (int i = 0; i < 8*sizeof(int); i++)
{
num += (cnt[i]%3)<<i;
}
return num;
}


分别计算所有数字每一位之和,对3取余后就对应着single number的每一位
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: