题目描述:输入一个整形数组,数组里有整数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度问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;
}
网友评论