//num1,num2分别为长度为1的数组。传出参数
//将num1[0],num2[0]设置为返回结果
public class Solution {
public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) {
if(array == null || array.length < 2){
num1[0] = 0;
num2[0] = 0;
return;
}
int result = 0;
int i;
for(i = 0;i < array.length;i++){
result ^= array[i];
}
int index;
for(index = 0;index < 32;index++){
if((result & (1 << index)) != 0){
break;
}
}
for(i = 0;i < array.length;i++){
if((array[i] & (1 << index)) != 0){
num1[0] ^= array[i];
}
else{
num2[0] ^= array[i];
}
}
}
}
2019.7.14
最新推荐文章于 2021-09-09 00:22:24 发布