【編程題】數組中只出現一次的數字(Java實現)

標題【編程題】數組中只出現一次的數字(Java實現)

題目來源

劍指offer第40題
https://www.nowcoder.com/questionTerminal/e02fdb54d7524710a7d664d082bb7811

題目描述

一個整型數組裏除了兩個數字之外,其他的數字都出現了兩次。請寫程序找出這兩個只出現一次的數字。

題目代碼

//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 yihuo=0;
        for(int i=0,len=array.length;i<len;i++){
            yihuo^=array[i];
        }
        int bi=1;
        while((bi&yihuo)==0){
            bi=bi<<1;
        }
        num1[0]=0;
        num2[0]=0;
        for(int i=0,len=array.length;i<len;i++){
            if((array[i]&bi)==0)
                num1[0]^=array[i];
            else
                num2[0]^=array[i];
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章