重畳区間問題を解くためのアルゴリズムと実装手法

区間(Interval)を扱うアルゴリズム問題は、ソートと貪欲法(Greedy Algorithm)を組み合わせることで効率的に解決できる場合が多くあります。ここでは、「重複する区間の削除」「文字列の分割」「区間の統合」という3つの代表的なパターンについて解説します。 1. 無重畳区間の最小削除数 与えられた区間の集合から、重なりをなくすために削除する必要がある最小の区間 ...

9月3日 14:52 投稿

辞書順最小化を行う重複文字除去:単調スタックアルゴリズム

問題定義 与えられた文字列 s から、重複する文字をすべて除去します。ただし、結果の文字列には特定の条件下で複数の要素が存在せず、残るべき一文字のみを残す必要があります。この際、以下の制約を満たさなければなりません。 最終的な文字列は、元の文字列に含まれる文字の中で最も小さい辞書順であること。 文字列内での各文字の相対的な順序は保たれること。 入力 ...

5月18日 13:54 投稿