0
如。 -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;
请上传失败testacases出来。格式化代码更密集也不会伤害,或者。 – cheeken
请标记作业并将您的逻辑解释为伪代码 –