連続部分列の最大和を求めるときの主要3つのアルゴリズム
整数配列から和が最大となる連続した部分配列(要素は1つ以上)を見つけ、その和を返す問題を取り上げます。配列内の任意の連続する区間の合計値のうち最大値を求める手法として、漸化式を用いた線形走査、累積和の差分最適化、そして分割統治法を解説します。
手法1:漸化式による線形走査(Kadaneのアルゴリズム変形)
あるインデックス i で終了する連続部分配列の最大 ...
6月3日 22:26 投稿
配列内のピーク要素を対数時間で特定する二分探索アルゴリズムの実装
問題の定義と制約条件
隣接する要素よりも厳密に大きい値を「ピーク」と定義する。配列の両端(インデックス -1 および n)は負の無限大と見なせるため、配列内には必ず少なくとも1つのピークが存在することが数学的に保証されている。複数のピークが混在する可能性があるが、要件としていずれか1つのインデックスを返せば十分である。重要な制約として、線形探索ではなく ...
5月15日 04:44 投稿