使用Kadane的最大子阵列

时间:2014-11-26 22:57:01

标签: algorithm arrays

我使用Kadane的算法编写"找到最大子阵列"(http://en.wikipedia.org/wiki/Maximum_subarray_problem),如下所示,但我的教授说,"我实际上是不确定你的MSA程序做了什么,但肯定找不到最大的子阵列。" 请告诉我我做错了什么。

int findMaximumSubarray(int array[], int length){
  int max1=array[0];
  int max2=array[0];
  int i;

  for (i=0; i<length; i++){
    max1 = findMax(array[i],max1+array[i]);
    max2 = findMax(max2,max1);
  }
  return max2;
}

int findMax(int x, int y) {
  if(x>y) return x;
  else return y;
}

1 个答案:

答案 0 :(得分:0)

这几乎是正确的,但想想在第一次循环迭代中max1会发生什么。没错,我不会只是告诉你这个错误是什么。