137. Single Number ii #
题目 #
给定整数数组 nums
,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次。找出并返回只出现了一次的元素。
设计并实现线性时间复杂度的算法来解决此问题,且算法只使用常量额外空间。
思路 #
- 位数统计
代码 #
class Solution {
public int singleNumber(int[] nums) {
int[] count = new int[32];
for (int num: nums) {
for (int i = 0; i < 32; i++) {
if (((num >> i) & 1) == 1) count[i] += 1;
}
}
int ans = 0;
for (int i = 0; i < 32; i++) {
if (count[i] % 3 == 1) ans ^= (1 << i);
}
return ans;
}
}