class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param arr intvector
* @param k int
* @return int
*/
int foundOnceNumber(vector<int>& arr, int k) {
// 1. binarySum求二进制的每一位的1出现累计次数
vector<int> binarySum(32);
for (int i = 0; i < 32; ++i) {
int sum = 0;
for (int& x : arr) {
// x >> i & 1 用于判断x的第i位数字是否为1
sum += (x >> i & 1);
}
binarySum[i] = sum;
}
int res = 0;
for (int i = 0; i < 32; ++i) {
if (binarySum[i] % k == 0) continue;
// 1 << i 说明第i位置是1 通过 | 或运算求res
res |= 1 << i;
}
return res;
}
};