[lintcode] Minimum Subarray

Minimum Subarray

 

Given an array of integers, find the subarray with smallest sum.

Return the sum of the subarray.

 

For [1, -1, -2, 1], return -3

Note

The subarray should contain at least one integer.

 

////If sum is greater than 0, it is not useful for the rest of numbers, so , get rid of it , set it as 0

////keep summing up the next one , if it is less than 0, keep it, keep summing next number.

 

public class Solution {
    /**
     * @param nums: a list of integers
     * @return: A integer indicate the sum of minimum subarray
     */
    public int minSubArray(ArrayList<Integer> nums) {
        // write your code
        int sum=nums.get(0);
        int minSum=nums.get(0);
        for(int i=1;i<nums.size();i++)
        {
            if(sum>0) sum=0;
            sum=sum+nums.get(i);
            minSum=Math.min(minSum,sum);
        }
        return minSum;
    }
}

 

posted on 2015-11-26 04:36  一心一念  阅读(180)  评论(0编辑  收藏  举报

导航