например. -3,6,11,13,5, -11,4,7,8 наибольшая сумма = 30 (6,11,13, причина добавления -3 уменьшит сумму)
например. 7,0, -3 наибольшая сумма = 7
например 4, -1,45 наибольшая сумма = 45
например, -3 -, - 2, -6,0 наибольшая сумма = 0
Нужен совет для моего кода, все еще глючит
int maxSum = Integer.MIN_VALUE;
int sum = 0;
int checkNeg = Integer.MIN_VALUE;
for (int i = 0; i < a.length; i++) {
if (a[i] > checkNeg) {
checkNeg = a[i];
}
}
if (checkNeg <= 0) {
maxSum = checkNeg;
}
if (checkNeg > 0) {
for (int i = 0; i < a.length; i++) {
if (a[i] != 0) {
sum += a[i];
if (sum > maxSum) {
if (i != 0) {
if (a[i] >= a[i - 1]) {
maxSum = sum;
} else {
sum = a[i];
}
} else {
maxSum = sum;
}
}
if (sum < 0) {
sum = 0;
}
} else {
sum = 0;
}
}
}
return maxSum;