找出只出現一次的兩個數字

2021-09-26 08:27:17 字數 460 閱讀 2275

乙個整形陣列裡,除了兩個數字之外,其他的數字都出現了兩次,找出這兩個只出現一次的數字,例如陣列,找出7和9。

之前做過乙個陣列中只有乙個只出現一次的數字,用亦或的方法,同理,找兩個數字,先把所有數字亦或,最後的結果是兩個只出現一次的數亦或的結果,這個結果中,出現1的位置說明兩個元素當前位不相等,可以根據1出現的位置把當前陣列分為兩個子陣列,每個子陣列中只有乙個出現一次的數字,其餘元素都是兩兩出現,然後對每個字陣列單獨亦或,求出兩個單獨的數。

public class lianxi 

}for(int i=0;i>pos)&1)==0)

else

s2^=a[i];

}system.out.println(s1+" "+s2);

}public static void main(stringargs);

fin(a);

}}

找出陣列中只出現一次的兩個數

題目 乙個整型陣列裡除了兩個數字之外,其他的數字都出現了兩次。請寫程式找出這兩個只出現一次的數字。要求時間複雜度是o n 空間複雜度是o 1 思路 首先交待一下異或的基本性質 2個相同的數異或等於0,且異或操作 滿足結合律和交換律。再來考慮一種簡單一點的情況 乙個陣列中只有乙個元素出現唯一的一次,而...

位運算 找出陣列中,只出現一次的兩個數字

題目 乙個整型陣列裡除了兩個數字之外,其他的數字都出現了兩次,請寫程式找出這兩個出現一次的數字。要求時間複雜度是o n 空間複雜度是o 1 分析 由於限制了複雜度,所以要用異或運算來解,什麼是異或?首先,計算機1個位元組是8位 1byte 8bit 其次,異或運算是 兩個輸入相同時為0,不同則為1。...

在陣列中找出只出現一次的兩個數

題目是這樣敘述的 在乙個陣列中除兩個數字只出現1次外,其它數字都出現了2次,要求盡快找出這兩個數字。要求 時間複雜度為o n 空間複雜度為o 1 請看我的分析 將這道題簡單化 乙個陣列中只有乙個數字出現一次,其他數字都是成對出現的,這時我們可以根據異或運算子的特性 a b a b 0 a a 我們可...