1、先异或找到不同数字的的区别位
然后相与分成2组
https://leetcode-cn.com/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-lcof/solution/zong-he-guan-fang-jie-shi-he-ge-wei-da-lao-jie-shi/
2、
class Solution { public: vector<int> singleNumbers(vector<int>& nums) { int ret = 0; int a=0;int b = 0; for(int i = 0; i < nums.size(); i++) { ret ^=nums[i]; } int div =1; while((div & ret) == 0) { div <<= 1; } for(int i = 0; i < nums.size(); i++) { if(nums[i]&div) { a ^=nums[i]; }else{ b ^=nums[i]; } } return vector<int>{a,b}; } };3、最开始用的map
class Solution { public: vector<int> singleNumbers(vector<int>& nums) { unordered_map<int,int> mp; vector<int> ans; for(auto a : nums) { mp[a]++; } for(auto c: mp) { if(c.second == 1) { ans.emplace_back(c.first); } } return ans; } };