题目描述
Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class
Solution {
public
:
int
singleNumber(
int
A[],
int
n) {
map<
int
,
int
> mp;
for
(
int
i=
0
; i<n; i++){
mp[A[i]]++;
}
int
j=
0
;
while
(mp[A[j]] !=
1
){
j++;
}
return
A[j];
}
};
|
根据 异或运算特点:
两个相同的数进行异或为0
1
2
3
4
5
6
7
|
public
int
singleNumber(
int A
[],int n) {
int m
=
0
;//任何数与0异或都是它本身
for
(
int
i=
0
;i<n;i++){
m^=A[i];
}
return
m;
}
|