Maximum Subarray

来源:互联网 发布:中国国际储备数据 编辑:程序博客网 时间:2024/05/22 01:35

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.

Link: 点击打开链接

Solution: DP, update max if and only if sum > max; reset sum to current element when sum < 0;

public class Solution {    public int maxSubArray(int[] A) {        int sum = A[0];        int max = A[0];        for(int i = 1; i < A.length; i++){            sum = sum > 0 ? sum + A[i] : A[i];            max = max > sum ? max : sum;        }        return max;    }}


0 0
原创粉丝点击