Maximum Subarray

来源:互联网 发布:网吧计费软件破解 编辑:程序博客网 时间:2024/05/21 07:47

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.


思路: Traverse the array from front to rear, every time sum it to a temp value. Compare the sum to max value. If the sum less than 0, reset the sum value to 0.

易错点: 1。 全是负值的情况  2 注意一定要先sum += i 

public class Solution {    public int maxSubArray(int[] A) {        int sum = 0;        int max = Integer.MIN_VALUE;//--        for(int i : A){            sum += i;//---            if(sum > max){                max = sum;            }            if(sum < 0){                sum = 0;            }        }        return max;    }}


0 0
原创粉丝点击