给定一个数字数组,求最小和且子数组的长度不能为 0。
我知道我可以使用 kadane 的算法,但问题要求子数组的长度不应为 0。因此,我的实现无法处理数组的所有元素都是正数的情况。
例如,给定以下数组:2、5、3、8、4,最小和为 2。
它还必须适用于普通数组,例如:-5、-4、5、-1、2,最小总和为 -9(前两个元素的总和)
我如何实现这一目标?
这是我的实现:
while (N--) {
scanf("%i", &num);
localmx += num;
if (localmx > 0) localmx = 0;
if (localmx < mx) mx = localmx;
}