import java.util.*;
public class MaxSum {
public int getMaxSum(int[] A, int n) {
// 边界条件:数组为空(n=0)时返回0
if (n == 0) {
return 0;
}
// currentMax:以当前元素为结尾的连续子数组的最大和
// globalMax:全局的最大连续子数组和
int currentMax = A[0];
int globalMax = A[0];
// 从第二个元素开始遍历
for (int i = 1; i < n; i++) {
// 选择:要么当前元素单独作为新子数组,要么加入之前的子数组
currentMax = Math.max(A[i], currentMax + A[i]);
// 更新全局最大值
globalMax = Math.max(globalMax, currentMax);
}
return globalMax;
}
}
思路:Kadane 算法 即可



京公网安备 11010502036488号