剑指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;

}

你可能感兴趣的:(剑指Offer-面试题42-连续子数组的最大和)