アルゴリズム実践トレーニングカリキュラム

配列操作編 二分探索と要素削除 二分探索:境界条件の2つの実装方法に注意。rightの定義、if条件と境界更新ロジックが重要。 左閉右閉左閉右開 rightの定義len(arr) - 1len(arr) ループ条件while left <= right:while left < right: 境界更新right = mid - 1right = mid class Solution: def binary_search(self, arr: List[int], target: int) -> int: ...

6月26日 18:36 投稿

数列の部分ソート後の指定位置値の特定

問題概要 1からnまでの順列に対してm回の部分ソート操作を実行し、q番目の位置にある数値を求める問題。ソート操作は昇順または降順のどちらかで、指定された区間内の要素を並び替える。 入力形式 n m a_1 a_2 ... a_n op_1 l_1 r_1 ... op_m l_m r_m q 解法概要 二分探索とセグメント木を組み合わせたO(n log²n)のアルゴリズムを使用する。重要なのは「ある値Xより大 ...

5月22日 19:15 投稿