利用位运算。
class Solution {
public int singleNumber(int[] nums) {
int res = 0;
for(int i = 0; i<32; i++){
int count = 0;//计算相加后二进制第i位出现1的的个数。
for(int num : nums){
count+= (num >> i) & 1;
}
if((count%3) != 0 ){
res |= (1 << i);
}
}
return res;
}
}
(x >> i) & 1 得到 x 的第 i 个二进制位。
1 << i。转为十进制。1 << 0 为1;1<< 1 为2; 1<< 3 为8。二进制中第i位置的转换。