连续子数组的最大和

题目描述:例如:{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;
    }
}

 

posted on 2025-11-29 15:07  王景迁  阅读(2)  评论(0)    收藏  举报

导航