算法1
(位运算) $O(n)$
计算所有数字每一位的个数bitCount,bitCount除以3的余数就是只出现一次的数对应位上的数。
Java 代码
class Solution {
public int findNumberAppearingOnce(int[] nums) {
int ans = 0;
for(int i=0;i<32;i++) {
int bitCount = 0;
for(int j=0;j<nums.length;j++) {
if (((nums[j] >> i) & 1) == 1) {
bitCount++;
}
}
if(bitCount % 3 == 1) {
ans |= 1 << i;
}
}
return ans;
}
}