您的位置:首页 > 其它

Single Number II

2014-01-09 22:09 183 查看
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?

public class Solution {
public int singleNumber(int[] A) {
// Note: The Solution object is instantiated only once and is reused by each test case.
if(A.length == 0)
return 0;
int[] cnt = new int[32];
for(int i = 0; i < A.length; i++)
{
for(int j = 0; j < 32; j++)
{
if( (A[i]>>j & 1) ==1)
{
cnt[j] = (cnt[j] + 1)%3;
}
}
}
int res = 0;
for(int i = 0; i < 32; i++)
{
res += (cnt[i] << i);
}
cnt = null;
return res;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: