
コーディング面接で
アルゴリズムのチートシートに、
出題の頻度は、海外でよく使われる定番の問題リスト 4 本 (Blind 75、NeetCode 150、Grind 75、LeetCode Top Interview 150) に何本入っているかで、よく出る・ときどき出る・少なめ の 3 段階に分けています。少なめは、
難度の目安
- 型を
1 つ 知っていれば 解ける 基本の 問い。 LeetCode の Easy ほど - 型を
選び、 端の 場合まで 詰めて 解く 問い。 LeetCode の Medium ほど - 型を
組み合わせるか、 計算量を 一段縮める 工夫が 要る 問い。 Medium の 難しい 物と Hard - いく
つもの 操作を 持つ仕組みを、 データの 持ち方から 設計して作る問い
二分探索木
再帰で
並びから 高さの そろった 二分 探索木を作る 小さい
順に 並んだ 数から、 左右の 高さが そろった 二分探索木を 作って 返します。 まん中を 根に して 左右を 同じ形で 作る、 分けて 解く 再帰の 基本の 練習です。 スタックの
中順の 走査で 二分探索木の k 番目に 小さい 値を探す 二分探索木から、
小さい 方から 数えて k 番目の 値を 返します。 左、 自分、 右の 順に 読むと 小さい 順に なる ことを 使い、 その 読み方を 再帰ではなく スタックの 繰り返しで 書く 練習です。 二分探索木の
大小で 2 つの 節の 共通の 祖先を探す 二分探索木の
2 つの 値に ついて、 両方を 子孫に 持ついちばん深い 節 (共通の 祖先) の 値を 返します。 2 つの 値と 節の 大小だけで、 根から 1 本道で 下りられる ことに 気づく 練習です。 繰り返しで
二分探索木に 新しい 値を 葉と して足す 二分探索木に
新しい 値を 足し、 足した あとの 木を 返します。 大小で 左右へ 進んで 空いた 所を 探し、 そこへ 葉と して つなぐ 練習です。 再帰で
二分探索木から 値を 消して 木を つなぎ直す 二分探索木から
指定の 値の 節を 消し、 決まりを 崩さないように つなぎ直した 木を 返します。 子の 数で 場合を 分け、 子が 2 つの ときは 右の 部分木の いちばん 小さい 節で 置き換える 練習です。
解いた
言葉で