版权声明:知识无界限,大家可自由转载。 https://blog.csdn.net/xidianbaby/article/details/84943501
1-题目
:
成对出现数字保存在磁盘文件中,但成对的数字不一定是相邻的,如2,5,3, 4,7,3, 4,2,5...
,由于意外有一个数字丢失了,如何尽快的找到是哪个数字丢失了?
2-思路
:
由于有一个数字丢失了,那必定有一个数只出现一次而且其它数字都出现了两次。
异或的特性 : 自己与自己
异或结果为0;异或满足交换律
。
3-代码
:
int[] arr = {2, 4, 6, 5, 8, 2, 5, 6, 4};
int result = 0;
for (int i = 0; i < arr.length; i++) {
result ^= arr[i];
}
System.out.println("lost : " + result);