コーディング面接問題

コーディング面接でよく出る型を、型ごとに難度の順に並べました。1 問ずつ、面接での聞かれ方、まず考える手順、Python、JavaScript、Go の解答、計算量、よくある間違い、面接での話し方の例まで載せています。上から順に解くと、前の型が次の型の足場になります。

アルゴリズムのチートシートに、計算量、二分探索、動的計画法など 8 テーマの要点を、たとえと表とコードで 1 頁にまとめています。問題を解く前の見取り図にどうぞ。

日本の企業のコーディングテストの形と対策に、企業が公開した試験の時間、問題の数、AI の決まりと、この一覧のどの問題で同じ型を練習できるかをまとめています。

標準入力から読んで答えを出力する形で書き、提出して採点まで試せる練習は、点数の合計と最高点と最低点、単語の出現回数を多い順に出す、期間ごとの売上の合計、駐車場の料金の計算、ログのレベルと単語の集計、売れた商品の番号を重複なしで数える、点検の周期の最大公約数と最小公倍数、N 以下の素数の個数、基準点以上の受験者の人数、予算内で選ぶ 2 つの商品、倉庫の電灯を全部点けるスイッチ、同時に使われる会議室の数、損益の合計が最も大きい連続した期間、倉庫の通路でゴールまでの最短の歩数、壊れた段をよけて階段を上る方法の数、ちょうどの金額を払う硬貨の最少の枚数、重さの上限までに積む荷物の価値の最大、部品の重さの平均と標準偏差、勤怠の記録から残業と深夜の時間を出す、在庫の入庫と出庫と取り消しを処理するの 20 問です。

この頁の目次3 項目
  1. はじめの 14 問14 問
  2. 最短経路 (BFS)7 問
  3. 定番 150 問の順
難度と出題の頻度の見方

出題の頻度は、海外でよく使われる定番の問題リスト 4 本 (Blind 75、NeetCode 150、Grind 75、LeetCode Top Interview 150) に何本入っているかで、よく出る・ときどき出る・少なめ の 3 段階に分けています。少なめは、定番リストにはまだ入っていないだけで、出ないと決まったわけではありません。基礎の練習として役に立ちます。

難度の目安

  • 型を 1 つ知っていれば解ける基本の問い。LeetCode の Easy ほど
  • 型を選び、端の場合まで詰めて解く問い。LeetCode の Medium ほど
  • 型を組み合わせるか、計算量を一段縮める工夫が要る問い。Medium の難しい物と Hard
  • いくつもの操作を持つ仕組みを、データの持ち方から設計して作る問い

海外のコーディング面接の対策で定番の 150 問を、型ごとに、土台になる問題から順に並べました。上から順に解けば、型を 1 つずつ積み上げられます。

そろった問題 149 / 150 問。準備中の問題は、そろったものから順に開けるようになります。

配列とハッシュ9 / 9 問

ツーポインタ5 / 5 問

スライディングウィンドウ6 / 6 問

スタック7 / 7 問

二分探索7 / 7 問

連結リスト11 / 11 問

木15 / 15 問

トライ木3 / 3 問

ヒープ7 / 7 問

バックトラック9 / 9 問

グラフ12 / 13 問

グラフの応用6 / 6 問

1 次元の動的計画法12 / 12 問

2 次元の動的計画法11 / 11 問

貪欲法8 / 8 問

区間6 / 6 問

数学と幾何8 / 8 問

ビット演算7 / 7 問

そのほかの問題22 問

解いた型を英語の問題集でも試したい人は、LeetCodeを日本語で始めるに、171 問と同じ考え方の LeetCode の問題を並べています。

言葉で答える技術の問いは面接問題にあります。