题目
解法
1.在线处理
程序一直接受输入,无论何时结束,都可以正确输出结果即为在线处理
int maxSubArray(int* nums, int numsSize) {
int this,max;
this = 0;
max = nums[0];
int i;
for(i=0; i<numsSize; i++)
{
this += nums[i];
if(this > max)
{
max = this;
}
if(this < 0)
{
this = 0;
}
}
return max;
}
2.前缀法
int maxSubArray(int* nums, int numsSize){
int result = INT_MIN;
int presum = 0;
int minpresum = 0;
int i;
for(i=0; i<numsSize; i++)
{
presum += nums[i];
result = fmax(result,presum-minpresum);
minpresum = fmin(presum,minpresum);
}
return result;
}