int[] arr = {2,4,3,6,3,2,5,5};
int result = arr[0];
for (int i = 1; i < arr.length; i++) {
result ^= arr[i];
}
String s = Integer.toBinaryString(result);
int index = s.lastIndexOf('1');
int flag = (int) Math.pow(2,s.substring(index).length() - 1);
int num1 = -1;
int num2 = -1;
for (int i = 0;i < arr.length; i++) {
if ((arr[i] & flag) == flag) {
num1 = num1 == -1 ? arr[i] : (num1 ^ arr[i]);
} else {
num2 = num2 == -1 ? arr[i] : (num2 ^ arr[i]);
}
}
System.out.println("fir:" + num1);
System.out.println("sec:" + num2);
数组中只出现一次的链各个数字,其他都出现了两次
最新推荐文章于 2022-09-10 21:39:22 发布