# 260. Single Number III

Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once.

For example:

Given nums = [1, 2, 1, 3, 2, 5], return [3, 5].

Note:

1. The order of the result is not important. So in the above example, [5, 3] is also correct.
2. Your algorithm should run in linear runtime complexity. Could you implement it using only constant space complexity?

1.我的答案

class Solution {
public:
vector<int> singleNumber(vector<int>& nums) {
map<int,int> mp;
vector<int> res;
int len = nums.size();
for(int i = 0; i < len; i++){
if(mp.find(nums[i]) == mp.end()){
mp[nums[i]] = 1;
}
else
mp[nums[i]]++;
}
for(auto iter = mp.begin(); iter != mp.end(); iter++){
if(iter->second == 1)
res.push_back(iter->first);
}
return res;
}
};

2.看了别人答案做的

int bit = a & ~(a-1);

bit即可得到a中右边第一次出现1的数。

class Solution {
public:
vector<int> singleNumber(vector<int>& nums) {
int temp = 0;
for(int i = 0; i < nums.size(); i++){
temp ^= nums[i];
}
int xors = temp & ~(temp - 1);
int num1 = 0, num2 = 0;
for(int j = 0; j < nums.size(); j++){
if((nums[j] & xors) > 0)
num1 ^= nums[j];
else
num2 ^= nums[j];
}
vector<int> res;
res.push_back(num1);
res.push_back(num2);
return res;
}
};

• 本文已收录于以下专栏：

## Middle-题目2：260. Single Number III

• cmershen
• 2016年05月31日 15:23
• 258

## [leetcode] 260.Single Number III

• u014673347
• 2015年08月17日 17:42
• 1335

## LeetCode 260 Single Number III（只出现一次的数字 III）（*）

• NoMasp
• 2016年02月18日 15:06
• 4545

## .260. Single Number III

class Solution { public: vector singleNumber(vector& nums) { int result=0; for(a...
• ZeroCBoy
• 2016年08月30日 16:01
• 102

## 260. Single Number III

Given an array of numbers nums, in which exactly two elements appear only once and all the other e...
• u011785661
• 2016年02月23日 19:04
• 53

## [LeetCode 260] Single Number III

Given an array of numbers nums, in which exactly two elements appear only once and all the other ele...
• sbitswc
• 2015年09月13日 04:22
• 9321

## LeetCode Single Number III 异或＋补码

• yeruby
• 2015年11月15日 22:23
• 1784

## LeetCode 260. Single Number III

Given an array of Numbers nums, in which exactly two elements appear only once and  all other elemen...
• github_34333284
• 2016年03月29日 04:01
• 109

## [LeetCode] 260. Single Number III

• sakurairo_maukoro
• 2016年08月27日 19:34
• 251

## 260.[LeetCode]Single Number III

• qq_28057541
• 2016年08月26日 21:43
• 240

举报原因： 您举报文章：260. Single Number III 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)