剑指Offer-面试题42-连续子数组的最大和

题目描述:输入一个整形数组,数组里有整数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度问O(n)。

bool isInputValid = false;

int find(int * arr, int length){

        if(arr == NULL && length <= 0){

                isInputValid = true;

                return 0;

        }

        isInputValid = false;

        int num = 0;

        int greatNum = -1000;

        for(int i = 0; i < length; i++){

                if(num <= 0){

                        num = arr[i];

                } else {

                        num += arr[i];

                }

                if(num > greatNum){

                        greatNum = num;

                }

        }

        return greatNum;

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。