题目:
给定一个数组,已知数组中的元素都是成对出现,现在数组中只有一个元素没有成对,请找出这个元素。
如:[1,2,3,4,5,5,4,3,1]
则2没有成对出现。
分析:
- 此题寻找数组中单独出现的数,已知元素成对出现。
- 成对出现的话就有方法了:异或两个一样的为0,0异或任何数为任何数
- 异或算法
解题加代码
解法:异或算法
由异或可得
n^n=0
0^n=n
代码实现:
public int findOne(int[] nums){//异或
int count = 0;
for ( int i = 0; i < nums.length;i++){
count ^= nums[i];
}
return count;
}