XORはそれのビデオを参照してください。2つの数の73の配列は一度だけ表示されAcWing
https://www.acwing.com/solution/acwing/content/1324/
これは2×の数、Yと仮定されます
1.排他的あるいはすべての数の、同じ数2後の排他的論理和は0です。結果はx⊕yです。
前記排他的論理和演算の性質は:進数0101の場合、bは二進数1011である。a⊕b= 1110のみが2つのビットを同時に比較結果1ない、結果はそうでなければ0です。
確かに、結果はビットx⊕ykが1であるあります。k番目のビットを使用して1であり、アレイは、2種類のアレイに分割され、アレイは、M Z = 1であり、nは他のアレイZ = 0です。
xおよびyは、Mは、Nです。
それぞれ3 M、Nは、排他的論理和素子でX、Yを得ることができます。
クラスのソリューション{ パブリック: ベクトル < int型 > findNumsAppearOnce(ベクトル< int型 >&NUMS){ int型の SUM = 0 ; 用(オートX:NUMS)SUM = ^ X; int型 K = 0 ; しばらく((SUM&>> K!1))K ++; // Kが1で異なるものでxまたはyに格納されている INTまず= 0 ; のための(自動X:NUMS) IF(X&K >> 1 ) まず ^ = X。//kの最初のセットは、時間が現れるの最初の数xを得るために、排他的OR 1ビット 戻りベクトル< INT > {まず、第1の和^を}; // 第二の数を得るためには1回発生SUM ^まず、 Y } }。