数组中只出现一次的数字(牛客网二十四)
程序员文章站
2022-03-08 15:57:23
...
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
//num1,num2分别为长度为1的数组。传出参数
//将num1[0],num2[0]设置为返回结果
public class Solution {
public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) {
int len =array.length;
if(len<2)
return;
int resultor=array[0];
for(int i=1;i<len;i++)
{
resultor^=array[i];
}
int n=findfirstbit(resultor);
for(int j=0;j<len;j++)
{
if(isbit1(n,array[j])==1)
num1[0]^=array[j];
else
num2[0]^=array[j];
}
}
int isbit1(int n,int num)
{
int num1=1;
while(n!=1)
{
num=num>>1;
n--;
}
return 1#
}
int findfirstbit(int resultor)
{
int bit=0;
int count=0;
while(bit==0)
{
bit= resultor&1;
resultor=resultor>>1;
count++;
}
return count;
}
}
上一篇: 数组中只出现一次的数字(C++牛客网)
下一篇: mvn site报错解决方案