該当する問題が見つかりませんでした。
時間・空間計算量、逐次探索と二分探索の差、再帰の漸化式といった基礎。実装そのものは易しいが、計算量を意識して解くことが目的です。
連続メモリ上のランダムアクセス、二ポインタ・スライディングウィンドウなど配列/文字列操作の基本パターン。
ポインタ操作、ダミーノード、二ポインタ(速い/遅い)による循環検出。配列との計算量トレードオフを体感します。
LIFO/FIFO のコンテナ抽象、相互実装、単調スタックといった応用。
平均 O(1) の挿入・検索、ハッシュによる集計・グルーピング。連結リストと組み合わせたキャッシュ設計も。
二分ヒープによる最小/最大要素の O(log n) 取り出し。Top-K、ストリーム中央値、k 本のリストのマージなど。
ソート済みデータでの二分探索、回転配列や境界条件、さらに「答えで二分探索する」発想。
マージソート/クイックソートなどの n log n ソート、安定性、ソートを前処理として活用するパターン。
木の走査(前順・中順・後順・レベル順)、BST 性質、平衡判定。再帰と BFS/DFS の基礎固め。
隣接リスト表現、連結成分、グリッド上の探索、閉路検出と依存関係のトポロジカル順序付け。Union-Find も含む。
Dijkstra / Bellman-Ford 系の最短経路、Prim / Kruskal の最小全域木。優先度付きキューや Union-Find が土台になります。
部分集合・順列・組合せの全列挙、枝刈り、盤面探索。再帰による状態空間の探索を体系的に学びます。
部分問題の重なりと最適部分構造。メモ化(トップダウン)と表計算(ボトムアップ)の両アプローチ。
部分文字列検索、パターン照合、回文。素朴法から KMP の考え方へつなげます。