练习1:
在一个数组中除了某个数字以外,其他数字都出现两次,找到这个数
思路:
可以用异或对出现两次的数字进行消除
代码public class BitOperations3 {
public static void main(String[] args) {
int arr[]= {1,1,2,2,3,3,4,4,7,7,25,25,8,8,6};
int x1=0;
for(int i=0;i
x1=x1^arr[i];
System.out.println(x1);
}}
# 练习2:
1~1000这1000个数放在含有1001个元素在数组中只有唯一一个元素重复,找到重复的数
## 思路 用1-1000对这个数组进行去重
## 代码import java.util.Random;
public class BitOperations4 {
public static void main(String[] args) {
int n=1001;
int[] arr=new int[n];
for(int i=0;i
arr[i]=i+1;
arr[n-1]=new Random().nextInt(n-1)+1;
int x1=0;
for(int i=1;i
x1=x1^i;
for(int i=0;i
{
x1=x1^arr[i];</