import java.util.Arrays;
import java.util.Random;
public class Main {
public static void main(String[] args) {
//总数N
int N = 11;
int[] arr = new int[N];
//生成1-1000的随机数,范围[0,N)
int index = new Random().nextInt(N-1)+1;
//给数组的元素赋值
for (int i = 0; i < arr.length-1; i++) {
arr[i]=i+1;
}
//最后一个数,是随机数
arr[arr.length-1] = index;
//打印数组
System.out.println(Arrays.toString(arr));
int x1 = 0;
for (int i = 1; i < N; i++) {
x1 = x1 ^ i;
}
for (int i = 0; i < N; i++) {
x1 = x1 ^ arr[i];
}
System.out.println(x1);
System.out.println("---------------使用辅助空间实现--------------------");
int[] helper = new int[N];
for (int i = 0; i < N; i++) {
//将每个数出现的数量放在0-1000个元素中
helper[arr[i]]++;
}
for (int i = 0; i < N; i++) {
if (helper[i] == 2){
System.out.println(i);
}
}
}
}
知识补充:与:都为1结果为1 & ;或:有一个为1结果为1 | ;异或:二者不同时结果为1 ^
异或可以理解为不进位加法。1+1 = 0, 0 + 0 = 0,1 + 0 = 1。
判断奇偶数 x&1 == 1 奇数; x&1 == 0 偶数。