題目描述:輸入一個整形數(shù)組,數(shù)組里有整數(shù)也有負數(shù)。數(shù)組中的一個或連續(xù)多個整數(shù)組成一個子數(shù)組。求所有子數(shù)組的和的最大值。要求時間復雜度問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;
}