
1.解题思路
根据位运算符的规律如下
A^A=0
B^0=B
也就是相同数字异或结果为0,与0异或结果为本身,同理我们可以得出一个结论
异或可以消除一个序列中重复的元素
比如有一个[1,2,3,4,5,3,2,1,4]此数组异或结果
1^2^3^4^5^3^2^1=0^5=5
举例说明
int[] arr=new int[]{1,2,3,4,5,6,7,8,9,10,5},根据题目要求,找出5
我们可以这样实现
因为我们知道有十个序列也就是1-10,也可以认为是一个[1,2,3,4,5,6,7,8,9,10]的有序数组
int[] arr2=new int[]{1,2,3,4,5,6,7,8,9,10}
用arr和arr2作异或运算,便可以得到重复数字5
2.代码实现如下
public static void main(String[] args) {
int[] arr = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 8}
int x1 = 0
for (int i = 1
x1 = (x1 ^ i)
System.out.println(x1)
}
System.out.println("===========================================")
for (int i = 0
x1=x1^arr[i]
}
System.out.println(x1)
}