問題の解法として、以下のシンプルで効率的な方法を紹介します。
-
ビット演算を使用する方法:
- 与えられた配列の全ての要素をXOR演算子(^)を使用して結合します。
- XOR演算子は、同じ数値を2回XORすると0になる性質を利用します。
- したがって、孤立した整数だけが残り、結果として求めることができます。
def find_lonely_integer(arr): result = 0 for num in arr: result ^= num return result
-
辞書を使用する方法:
- 整数の出現回数を記録するために、空の辞書を用意します。
- 配列を走査し、辞書に各整数をキーとして登録します。既に辞書に存在する整数はカウントを増やし、存在しない整数はカウントを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