原题链接
解法:异或操作
vector<int> findNumsAppearOnce(vector<int>& nums) {int eO = 0, eOhasOne = 0;for (int curNum : nums) {eO ^= curNum;}int rightOne = eO & (~eO + 1); //取出最右侧的1for (int cur : nums) {if ((cur & rightOne) == 0) {eOhasOne ^= cur;}}vector<int>b;b.push_back(eOhasOne);b.push_back((eO ^ eOhasOne));return b;
}