剑指 Offer 56 - I. 数组中数字出现的次数 - 力扣(LeetCode)
看这儿:LeetCode第 260 题:只出现一次的数字 III(C++)_zj-博客
class Solution {
public:
vector<int> singleNumbers(vector<int>& nums) {
int num1 = 0, num2 = num1;
int val = 0;
for(const auto &num : nums) val ^= num;
int bit = val & (~val+1);//取最后一位为1
for(const auto &num : nums){
if(num & bit) num1 ^= num;
else num2 ^= num;
}
return {num1, num2};
}
};