题目描述
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; }
|