找出数组中连续子序列的最大和 - xiewenfeng/test GitHub Wiki
输入一个整型数组,数组中连续一个或多个整数组成一个子数组,每个子数组都有一个和,求所有子数组和的最大值。 如输入数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和为18
private int maxSumSubSequence(int[] array) {
if (array == null) return 0;
int maxSum = 0, temSum = 0;
for (int data : array) {
temSum += data;
if (maxSum < temSum) {
maxSum = temSum;
} else if (temSum < 0) {
temSum = 0;
}
}
if (maxSum == 0) {
maxSum = array[0];
for (int i = 1; i < array.length; i ++) {
if (array[i] > maxSum) {
maxSum = array[i];
}
}
}
return maxSum;
}