タイトル説明
二つの数の整数型配列に加えて、他の数字が二回表示されます。これら二つの図が表示されるだけで検索するプログラムを作成してください。
思考
図は、排他的論理和である後に2つの数の配列は、一度だけ、そのように発生するので、その結果は、これら2つの数のXOR結果そのような1212345547仕上げXORです図3は、111 ^ 7011 ^ 100 =です
最終的な結果で、右から3番目に見出さ1の最初の発生を見つけるために左に左右で得られた結果は、両方とも0であると、100は、各アレイと本来の動作の数を取り出します行う操作で得られた結果は、それによれば、XORの二つのサブ配列番号2つの配列のそれぞれが得られるように、2つのサブアレイを見つけることができることは、1であります
3,7魔法の数で登場
1 #- * -コーディング:UTF-8 - * - 2 クラスソリューション: 3 #リターン[B] ABは2つの数字が表示される 4。 DEF FindNumsAppearOnce(セルフ、アレイ): 5。 #ここで書き込みコード壁紙 6。 IF(アレイ)<2でlen : 7。 戻りなし 8。 tmpnum = なし 9。 ため NUM に:配列 10 IF tmpnum == :なし 。11 tmpnum = NUM 12である 他: 13である tmpnum ^ = NUM 14 カウント= 0 15 ながら tmpnum%2 == 0: 16 tmpnum = tmpnum >> 1つの 17 カウント+ = 1枚の 18 マスク= 1 << カウント 19 firstNumを= なし 20 secondNum = なし 21 用 NUM にアレイ: 22 場合はマスクNUM&= = 0: 23 もし firstNum == なし: 24 firstNum = NUM 25 他: 26 firstNum ^ = NUM 27 他: 28 もし secondNum == なし: 29 secondNum = NUM 30 他: 31 secondNum ^ = NUM 32 リターンfirstNum、secondNum 33
2019年12月23日夜02時58分21秒