题解 | #出现一次的牛#
出现一次的牛
https://www.nowcoder.com/practice/ed54a59697a244d2a3c656191d575f22
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @return int整型
*/
int findSingleCow(vector<int>& nums) {
// write code here
int ret = 0;
// 注意 mask 使用 unsigned,不然负数会报错
for(unsigned int mask = 1; mask > 0; mask <<= 1) {
int cnt = 0; // 记录 mask 对应位为 1 的数的数量
for (auto num : nums) {
if (num & mask) cnt++;
}
if (cnt % 3) ret |= mask; // 如果数量不为 3 的倍数,那么指定牛在该位为 1
}
return ret;
}
};
