1 直接上题解
// 唯一数字
public static void main(String[] args) {
int[] array = new int[]{1,1,1,2,3,3,3,5,5,5,6,2,2};
int ones = 0;
int twos = 0;
int threes;
for (int x : array) {
twos = twos | (ones & x);// 位或 统计 出现过两次的bit累计
ones = ones ^ x; // 异或 统计 只出现一次的bit累计
threes = twos & ones; // 统计出现了三次的bit累计
ones = ones & (~threes); // 抹掉出现三次的bit
twos = twos & (~threes); // 抹掉出现三次的bit
}
System.out.println(ones); // 6
}