原题链接:Leetcode 260. 只出现一次的数字 III
官解:Leetcode 260. 只出现一次的数字 III
class Solution {
public:
vector<int> singleNumber(vector<int>& nums) {
int res=0;
for(auto num:nums) res^=num;
// 防止溢出
//int lsb= (res==INT_MIN ? res : res&(-res));
int lsb=(res==INT_MIN ? res : res-(res&(res-1)));
int type1=0,type2=0;
for(auto num:nums)
{
if(num&lsb) type1^=num;
else type2^=num;
}
return {type1,type2};
}
};