您的位置:首页 > 其它

leetcode:Single Number II

2014-08-07 19:12 429 查看
问题描述:

Given an array of integers, every element appears three times
except for one. Find that single one.

给一个数组,里面除了一个元素出现一次,其他的元素都出现了3次,求出出现一次的元素;

要求,O(n)的时间复杂度和O(1)

class Solution {
public:
int singleNumber(int A[], int n) {
if(A==NULL)
return 0;
int result=0;
int tmp=0;
int flag=1;
for(int i=0;i<32;i++)
{
tmp=0;
for(int j=0;j<n;j++)
{
tmp += A[j]&flag;
A[j]=A[j]>>1;
}
tmp=tmp%3;
tmp=tmp<<i;
result=result|tmp;
//flag=flag<<1;
}
return result;
}
};
通过对bit位的运算,得到结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: