题目
一个数组里除了某一个数字之外,其他的数字都出现了两次。请写出程序找出这个只出现一次的数字
答案
对数组进行连续异或,重复的都会被消除,最后剩下的就是落单的数
public class T1_3 {
public static void main(String[] args) {
//创建101位的数组
int N = 101;
int arr[] = new int[101];
//步长为2,前100位相邻元素相同
for (int i = 0; i < N - 2; i=i+2) {
arr[i] = i;
arr[i+1] = i;
}
//最后一位为随机数,这里没有进行打乱
arr[N-1]= new Random().nextInt(N);
System.out.println(Arrays.toString(arr));
//连续异或,重复的都会被消掉
int x1 = 0;
for (int i = 0; i < N; i++) {
x1=x1^arr[i];
}
System.out.println(x1);
}
}