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

本文介绍了一种在整型数组中查找唯一不重复元素的方法,提供了两种算法实现:一种使用额外内存通过映射记录每个元素出现次数;另一种利用位操作中的异或特性,实现了线性时间和常数空间复杂度的要求。
236

被折叠的 条评论
为什么被折叠?



