私たちはすべて、最大和サブアレイと有名なKadane's algorithmについて知っています。しかし、同じアルゴリズムを使って最小合計を見つけることはできますか?KadaneのアルゴリズムによるO(N)の最小和サブアレイ
私のテイクは以下のとおりです。
は符号を変更して、我々は最大の和サブアレイを計算する方法と同じことで、最大の合計を、見つける。配列内の要素 の符号を変更して初期状態にします。
問題が発生した場合は、修正をお手伝いしてください。
コーナーケース:私はすべての要素が肯定的である場合、いくつかの前処理を行うことで問題を処理できることを知っています。つまり、すべてが+ veであれば配列を走査します。
上記のアルゴリズムはうまく機能し、よくサポートされます(dasblinkenlight)。
すべての要素が陽性の場合、なぜ機能しないのですか?その場合の最小合計は、空のシーケンスでは0であり、正しく検出されます。 – Henry
@Henry - おそらく、_k_≤_N_のサイズ - _k_部分配列の最小合計を探したいと思っています。その場合には – DaoWen
で配列をたどることができ、すべての要素が+ ve以上であれば、要素の最小値をとることができます。これは0を再チューニングするよりも適切です。ここでの主な質問は、私が言及したアプローチは最小合計を見つけるかどうかということでしょうか? – Trying