如何找出数组中只出现一次的数字

1.题目描述

一个整形数组里除了一个数字外,其他数字都出现两次。找出这个只出现一次的数字

例如:

数组:{2,2,1,3,4,3,4}

输出:1

2.解题分析

这里可以用异或这个符号:“^”,如果两个相同的数字进行异或结果为零,如果0和当前数字进行异或,则结果还为当前数字,所以我们从头遍历数组,对每个数字进行异或操作,最终剩下的就是只出现一次的数字。

3.代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

public class 如何找出数组中只出现一次的数字 {
public static int findNotDouble(int []a){
int result=0;
for(int i=0;i<a.length;i++){
result^=a[i];
}
return result;
}
public static void main(String[] args) {
int[]a=new int[]{2,2,1,3,4,3,4};
System.out.println(findNotDouble(a));


}
}
-------------本文结束感谢您的阅读-------------
0%