查询卡丹的算法

时间:2016-06-15 12:06:20

标签: c arrays algorithm

我正在通过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作为最终答案,它是数组所有元素的总和。

1 个答案:

答案 0 :(得分:3)

是的,任何连续的子阵列都可以是一个解决方案,包括整个阵列。

请注意,空子数组也可能是有效的解决方案(对于所有负数算法,最大和数结果为0)