public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) {
int length=array.length;
if(length==2){
num1[0]=array[0];
num2[1]=array[1];
}
int bitres=0;
for(int i=0;i<array.length;i++){
bitres^=array[i];
}
int index=0;
while ((bitres&1)==0 && index<32){
bitres>>=1;
index++;
}
for(int i=0;i<length;i++){
if(((array[i]>>index)&1)==1){
num1[0]^=array[i];
}else {
num2[0]^=array[i];
}
}
}
数组中有两个出现一次的数字,其他数字都出现两次,找出这两个数字
最新推荐文章于 2019-12-22 14:12:45 发布