Java:给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。
时间: 2023-05-14 14:06:50 浏览: 136
可以使用位运算来解决这个问题。具体来说,我们可以对所有数字的二进制表示的每一位进行统计,统计每一位上所有数字出现次数的和,并对 3 取余,如果余数不为 0,则说明只出现一次的数字在这一位上有值。最后将所有有值的位组合起来,就得到了只出现一次的数字。
以下是 Java 代码实现:
public int singleNumber(int[] nums) {
int[] bitSum = new int[32];
for (int num : nums) {
for (int i = 0; i < 32; i++) {
bitSum[i] += (num >> i) & 1;
}
}
int res = 0;
for (int i = 0; i < 32; i++) {
res |= (bitSum[i] % 3) << i;
}
return res;
}