#include <unordered_map> #include <vector> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector * @return int整型vector */ vector<int> FindNumsAppearOnce(vector<int>& nums) { // write code here // vector<int>res; // res.reserve(2); // unordered_set< int> u_set; // for(const int & num:nums){ // if(u_set.count(num)) u_set.erase(num); // else u_set.insert(num); // } // for(const int & num:u_set) res.push_back(num); // sort(res.begin(),res.end()); // return res; int tmp=0; for(const int & num:nums) tmp ^=num; int mask = 1; while((mask & tmp) == 0) mask <<= 1; int a=0; int b=0; for(const int & num:nums){ if((num & mask)!=0){ a ^= num; }else{ b ^= num; } } return a<b? vector<int>{a,b}:vector<int>{b,a}; } };