这道题首先理解题意正确,这个不同的数只会出现一次!碰见只有一个数不重复的都可以使用这种方法来解决,看代码吧,一切都在代码中。
public int singleNumber(int[] A) {
if (A == null || A.length == 0) {
return -1;
}
int result=0;
int[] bits = new int[32];
for (int i = 0; i < 32; i++) {
for(int j = 0; j < A.length; j++) {
bits[i] += A[j] >> i & 1;
}
bits[i] %= 3;
result |= (bits[i] << i);
}
return result;
}
本文介绍了一种通过位运算寻找数组中唯一不重复元素的方法。该算法特别适用于每个数出现三次,仅有一个数出现一次的情况。通过遍历整型数的每一位并利用位运算特性,最终高效地找到目标单例数。
348

被折叠的 条评论
为什么被折叠?



