HackerRankの「Lonely Integer」問題の解法


問題の解法として、以下のシンプルで効率的な方法を紹介します。

  1. ビット演算を使用する方法:

    • 与えられた配列の全ての要素をXOR演算子(^)を使用して結合します。
    • XOR演算子は、同じ数値を2回XORすると0になる性質を利用します。
    • したがって、孤立した整数だけが残り、結果として求めることができます。
    def find_lonely_integer(arr):
       result = 0
       for num in arr:
           result ^= num
       return result
  2. 辞書を使用する方法:

    • 整数の出現回数を記録するために、空の辞書を用意します。
    • 配列を走査し、辞書に各整数をキーとして登録します。既に辞書に存在する整数はカウントを増やし、存在しない整数はカウントを1に設定します。
    • 最終的に、カウントが1の整数を見つけることができます。
    def find_lonely_integer(arr):
       counts = {}
       for num in arr:
           if num in counts:
               counts[num] += 1
           else:
               counts[num] = 1
       for num, count in counts.items():
           if count == 1:
               return num