问题在于找到最大连续子数组总和;我的输出为0,在某些情况下为随机数(我检查了是否超出数组限制,但一切似乎都很好)。
我在“堆栈溢出”中看到了类似的问题,但其中大多数是用于较小的输入和其他编程语言的。
这是我的代码:
int maxSubArray(const int* A, int n1)
{
int i,j,max[n1],L;
for (i=0;i<n1-1;i++)
{
int sum=A[i]+A[i+1];
max[i]=sum;
for(j=i+1;j<n1-1;j++)
{
sum=sum+A[j+1];
if(sum>max[i])
{
max[i]=sum;
}
}
}
for(i=1;i<n1;i++)
{
L=max[0];
if(max[i]>L)
{
L=max[i];
}
}
return(L);
}
请帮助我查找代码中的问题。
答案 0 :(得分:0)
答案 1 :(得分:0)
这是伪代码:
current_sum = 0
best_sum = 0
遍历数组:
如果当前总和小于当前总和+数组[i]
current_sum = current_sum + array[i]
如果最佳总和小于当前总和
best_sum = current_sum