最大连续子数组

bool largestSumSubarray(int L, int length){
    if(L == NULL || length == 0) return false;
    int sum=cur_sum=0;
    for(int i=0 ; i<length ; ++i){
        cur_sum += L[i];
        if(cur_sum <= 0)    //如果某个加和都小于0,那么直接从后面重新开始肯定比保存这里更大
            cur_sum = 0;
        sum = max(cur_sum , sum);
    }
    if(sum = 0){
        sum=L[0];
        for(int i = 1;i < L.lenght; ++i)
        sum=max(sum,L[i]);
    }
    printf("%d",sum);
    return true;
}
  • 为什么返回的是布尔变量?

    当我们输入一个空指针应该返回什么?0?无法区别无效数组和最大数组为0的情况

  • 考虑所有都是负值的边界情况,因为初始值为0

原文地址:https://www.cnblogs.com/louieowrth/p/12680962.html