连续子数组的最大和
题目描述:例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。
Java代码:
public class Solution {
public int FindGreatestSumOfSubArray(int[] array) {
if (array == null || array.length == 0) {
return 0;
}
int resSum = array[0]; // 设置结果初始值
for (int i = 0, length = array.length, curSum = 0; i < length; i++) { // 遍历每个元素
if (curSum <= 0) { // 如果当前和不是正数,则会减小与当前元素的累计和
curSum = array[i];
} else { // 否则,会增大与当前元素的累计和
curSum += array[i];
}
if (curSum > resSum) { // 如果当前和>结果,则当前和设为结果
resSum = curSum;
}
}
return resSum;
}
}
浙公网安备 33010602011771号