easy LC #349 ↗

PROBLEM 03

2つの配列に共通する値

2つの配列に現れる値を、重複なしで返します。

目安 30分 set · membership

2つの参加者リストを数値IDで受け取ります。 両方のリストに登場するIDだけを、重複を取り除いて返してください。 返す順番は問いません。

入力: left = [2, 2, 4, 8], right = [1, 2, 2, 8]
出力: [2, 8]
入力: left = [1, 3, 5], right = [2, 4, 6]
出力: []

制約

  • 各配列の長さは 0 以上 50,000 以下
  • 要素は安全な整数
  • 出力に同じ値を2回含めない

対応する問題: LeetCode #349 Intersection of Two Arrays

STEPWISE HINTS

ヒント

01考え方の方向

片方の配列に値が含まれるかを、もう片方から何度も調べる処理を高速化します。

02使うデータ構造

Set を使うと、値の存在確認と重複の除去を同時に扱えます。

03擬似コード

right を Set にする。left の各値を調べ、right に存在する値を結果用 Set に追加して、最後に配列へ変換する。

AFTER ACCEPTED

解説

AC 後に解説が開きます

まずは自分の言葉で方針を説明し、コードに落としてみましょう。