
コーディング面接で
アルゴリズムのチートシートに、
出題の頻度は、海外でよく使われる定番の問題リスト 4 本 (Blind 75、NeetCode 150、Grind 75、LeetCode Top Interview 150) に何本入っているかで、よく出る・ときどき出る・少なめ の 3 段階に分けています。少なめは、
難度の目安
- 型を
1 つ 知っていれば 解ける 基本の 問い。 LeetCode の Easy ほど - 型を
選び、 端の 場合まで 詰めて 解く 問い。 LeetCode の Medium ほど - 型を
組み合わせるか、 計算量を 一段縮める 工夫が 要る 問い。 Medium の 難しい 物と Hard - いく
つもの 操作を 持つ仕組みを、 データの 持ち方から 設計して作る問い
配列とハッシュ
Two Sum を
ハッシュマップで解く 整数の
並びから、 足すと 目標の 数に なる 2 つを 探し、 その 位置を 返す。 見た数を 辞書に 覚えて おくと、 並びを 1 回なめるだけで 見つかります。 アナグラムか
どうかを ハッシュで 判定する 2 つの
文字列が、 文字を 並べ替えるだけで 同じに できるかを 調べる。 並べ替えて 比べる 書き方と、 文字の 数を 数える 書き方を 比べる 練習です。 ハッシュで
最初の 重複しない 文字を探す 文字列の
中で 1 回しか 出ない 文字の うち、 いちばん前に ある物の 位置を 返す。 先に 全部を 数え、 もう 1 回読んで 探す、 2 回なめる 考え方の 練習です。 集合で
同じ値が 2 回出てくるかを 確かめる 整数の
並びの 中に、 同じ 値が 2 回以上 出てくるかを 判定します。 見た値を 集合に 覚え、 出てきた 値が もう 集合に あるかを 一定の 手間で 調べる 練習です。 辞書で
同じ 文字で できた 語を 組に 分ける 文字を
並べ替えると 同じに なる 語どうしを、 1 つの 組に まとめます。 語ごとに 文字の 数を 数えた物を 辞書の 鍵に して、 同じ鍵の 語を 集める 練習です。 左右からの
積で 自分以外の 積を 並べる 整数の
並びの 各位置に ついて、 その 位置を 除いた 全部の 数の 積を 並べて 返します。 割り算を 使わず、 左からの 積と 右からの 積を 2 回なめて 掛け合わせる 練習です。
解いた
言葉で