int array[] = {-1, 4, -2, 5, -5, 2, -20, 6};
如果我有那个数组,我的 Kadane 算法实现来找到最大子数组就可以了:
int max_so_far = INT_MIN;
int max_ending_here = 0;
for (int i = 0; i < size; i++) {
max_ending_here = max(max_ending_here + array[i], 0);
max_so_far = max(max_ending_here, max_so_far);
}
printf("%d\n", max_so_far);
但是,如果我有一个包含所有负数的数组:
int array[]= {-10, -10, -10};
它不起作用,它应该返回 -10,但我得到 0。
我怎样才能让它也适用于负数?
谢谢!