標題【編程題】數組中只出現一次的數字(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];
}
}
}