赞
踩
//找到数组中出现奇数次数的数字(仅有一个)
public static int oneOdd(int[] arr) {
if (arr == null || arr.length < 0) {
return 0;
}
int eor = 0;
for (int cur : arr) {
eor ^= cur;
}
return eor;
}
//找到数组中出现奇数次数的数字(仅有两个) public static void twoOdd(int[] arr) { if (arr == null || arr.length < 0) { return; } int eor = 0; for (int cur : arr) { eor ^= cur; } int eorT = eor & (~eor + 1);//提取eor的最右侧的一 int onlyOne = 0; for (int cur : arr) { if ((eorT & cur) == 0) onlyOne ^= cur; } System.out.println(onlyOne + "," + (eor ^ onlyOne)); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。