LeetCode 53. Maximum Subarray

来源:互联网 发布:淘宝买家贷款能贷多少 编辑:程序博客网 时间:2024/06/10 00:41

问题描述

Find the contiguous subarray within an array (containing at least one number) which has the largest sum.

For example, given the array [-2,1,-3,4,-1,2,1,-5,4],
the contiguous subarray [4,-1,2,1] has the largest sum = 6.

问题分析

求一个数组中连续子序列最大的值。可以使用滑动窗口来实现。当碰到和小于0的时候就可以丢弃重新从0开始计算。

代码实现

public int maxSubArray(int[] nums) {        if (nums == null || nums.length == 0) {            return 0;        }        int sum = 0;        int max = Integer.MIN_VALUE;        for (int i = 0; i < nums.length; i++) {            sum = sum + nums[i];            max = sum > max ? sum : max;            if (sum < 0) {                sum = 0;            }        }        return max;    }
原创粉丝点击