**
* 连续子数组的最大和
* 思路:1.定义一个currentSum用for循环来记录前i项和。
* 如果currentSum的值小于0,将currentSum = array[i+1]
* 2.定义一个最大值maxSum,与currentSum比较
public class FindMaxSumOfSubArray {
public static void main(String[] args) {
int[] array = {-6,-3,-9};
FindMaxSumOfSubArray max = new FindMaxSumOfSubArray();
int result = max.FindGreatestSumOfSubArray(array);
System.out.println(result);
}
public int FindGreatestSumOfSubArray(int[] array) {
int currentSum = 0;//定义currentSum
int maxSum = array[0];//定义当前最大值
if(array.length <= 0 || array == null){//数组为空或小于0
return 0;
}
for(int i = 0; i <array.length;i++){
if(currentSum <= 0){//当前值<=0重新赋值
currentSum = array[i];
}else{//当前值>0与后面元素相加
currentSum += array[i];
}
if(currentSum > maxSum){//当前值与最大值进行比较
maxSum = currentSum;
}
}
return maxSum;
}
}