数组中只出现一次的数字

来源:互联网 发布:淘宝开网店要多少钱 编辑:程序博客网 时间:2024/06/15 17:53

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。

//num1,num2分别为长度为1的数组。传出参数//将num1[0],num2[0]设置为返回结果public class Solution {    public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) {        //输入不符合要求        if(array==null||array.length==0){            return;        }        //int xor存放异或结果        int xor=0;        //flag用于寻找和标记第N位为1的位置        int flag=1;        //先对整个数组的元素进行异或运算        for(int i=0;i<array.length;i++){            xor^=array[i];        }        while((xor&flag)==0){            flag=flag<<1;        }        for(int i=0;i<array.length;i++){            if((array[i]&flag)==0){                num1[0]^=array[i];            }else{                num2[0]^=array[i];            }        }    }}


原创粉丝点击