我正在通过Kadane的最大子阵列算法问题。现在我从声明中了解到我们找到了一个子阵列。子数组是否包含整个数组本身。
其实我正在尝试关注程序
int main(void)
{
int arr[9]={5,6,-4,-1,-2,1,5,3};
int i,n,max_last =0,max_mid =0;
for(i=0;i<8;i++)
{
max_mid = max_mid + arr[i];
printf("max_mid =%d\n",max_mid);
if ( max_mid < 0)
max_mid =0;
if( max_mid > max_last)
max_last = max_mid;
}
printf("val=%d",max_last);
return 0;
}
这里给出13作为最终答案,它是数组所有元素的总和。
答案 0 :(得分:3)
是的,任何连续的子阵列都可以是一个解决方案,包括整个阵列。
请注意,空子数组也可能是有效的解决方案(对于所有负数算法,最大和数结果为0)