/**
* @author
* @description 寻找数组中唯一重复的一个数,用到亦或的交换和提取
* @date 2020-08-26 13:55
*/
public class FindRepetitionNum {
public static void main(String[] args) {
int N = 11;
int[] nums = new int[N];
for(int i = 0; i < nums.length-1; i++) {
nums[i] = i+1;
}
//末尾生成一个随机数
nums[nums.length-1] = new Random().nextInt(N-1) + 1;
for(int i:nums) {
System.out.print(i + ",");
}
System.out.println();
int index = new Random().nextInt(N-1);
System.out.println(index+1);
//交换两个数,将末尾的随机数随机交换到数组中
nums[index] ^= nums[nums.length-1];
nums[nums.length-1] ^= nums[index];
nums[index] ^= nums[nums.length-1];
for(int i:nums) {
System.out.print(i + ",");
}
int x = 0;
for (int i = 1; i <= N-1; i++) {
x ^= i;
}
for (int i = 0; i < N; i++) {
x ^= nums[i];
}
System.out.println();
System.out.println(x);
}
}
寻找数组中唯一重复的一个数,用到亦或的交换和提取
最新推荐文章于 2022-04-27 17:08:20 发布