在其他数都出现偶数次的数组中找到出现奇数次的数
程序员文章站
2022-06-29 21:56:03
...
//在其他数都出现偶数次的数组中找到出现奇数次的数
public class OddNum{
//(1)数组中只有一个数出现奇数次
public static void Get01(int[]arr)
{
int cur=0;
for(int i=0;i<arr.length;i++)
{
cur=cur^arr[i];
}
System.out.println(cur);
}
//(2)数组中有两个数出现奇数次
public static void Get02(int[]arr)
{
int cur=0,Oddone=0;
for(int i=0;i<arr.length;i++)
{
cur^=arr[i];
}
int rightOne=cur&(~cur+1);
for(int i=0;i<arr.length;i++)
{
if((rightOne&arr[i])!=0)
{
Oddone^=arr[i];
}
}
System.out.println(Oddone+" "+(cur^Oddone));
}
public static void main(String[]args)
{
int[]arr={1,2,2,3,3,5,5};
int[]arr2={1,3,3,3,5,5};
Get01(arr);
Get02(arr2);
}
}