java实现“最大子序和”

  • 时间:
  • 来源:互联网
  • 文章标签:
/**
 * 最大子序和:给定一个完整数组nums,找出一个具有最大和的连续子数组(子数组最少包含一个元素),
 * 返回其最大和。
 */
public class MaxChildArr {
    public static void main(String[] args) {
        int[] nums = {-2, 1, -3, 4, -1, 2, 1, -5, 4};
        System.out.println(solution(nums));
    }

    // 思想:这里有个好处,就是不需要返回子数组,只需要求最大值
    public static int solution(int[] nums){
        int result = nums[0];
        int sum = 0;
        for (int num: nums){
            if (sum > 0){
                sum += num;
            } else {
                sum = num;
            }
            result = Math.max(result, sum);
        }
        return result;
    }
}

本文链接http://www.taodudu.cc/news/show-83081.html