数値の配列が与えられた場合、最小合計を見つけます。部分配列の長さは 0 にはなりません。
kadane のアルゴリズムを使用できることはわかっていますが、サブ配列の長さが 0 であってはならないという質問が必要です。したがって、私の実装では、配列のすべての要素が正の場合を処理できません。
たとえば、配列が 2、5、3、8、4 の場合、最小合計は 2 です。
-5、-4、5、-1、2、最小合計は -9 (最初の 2 つの要素の合計) のような通常の配列でも動作する必要があります。
どうすればこれを達成できますか?
これが私の実装です:
while (N--) {
scanf("%i", &num);
localmx += num;
if (localmx > 0) localmx = 0;
if (localmx < mx) mx = localmx;
}