Leetcode 260. Single Number III

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

1. Description

Single Number III

2. Solution

  • O(N)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
public:
vector<int> singleNumber(vector<int>& nums) {
vector<int> result;
int a = 0;
int b = 0;
for(int i = 0; i < nums.size(); i++) {
a ^= nums[i];
}
int index = a & ~(a - 1);
for(int i = 0; i < nums.size(); i++) {
if(index & nums[i]) {
b ^= nums[i];
}
}
a = a ^ b;
result.push_back(a);
result.push_back(b);
return result;
}
};

Reference

  1. https://leetcode.com/problems/single-number-iii/description/

  2. https://www.lijinma.com/blog/2014/05/29/amazing-xor/

如果有收获,可以请我喝杯咖啡!