Min Stack(最小値を取得できるスタック)
Min Stack(最小値を取得できるスタック)とは
通常のStack操作に加え、現在の最小値を定数時間で取得できるStackを設計する課題です。
操作を高速にするため、更新時に補助情報を保持する設計を学べます。
判断するときに確認すること
- pushとpop後の最小値が正しいか
- 同じ最小値が複数ある場合を扱えるか
- 各操作の計算量を説明できるか
具体例で整理する
避けたい判断
最小値を取得するたびにStack全体を走査する。
条件が分かる判断
値と現在の最小値のペアをStackへ積む。
設計とレビューで使う
このページの推奨は次のとおりです。
各要素と、その時点までの最小値を一緒に積む。