Given an array of integers, find the subarray with smallest sum.
Return the sum of the subarray.
For [1, -1, -2, 1], return -3
public class Solution {
public int minSubArray(ArrayList<Integer> nums){
if (nums ==null) {
return 0;
}
int len = nums.size();
int min = Integer.MAX_VALUE, currSum = 0;
int []localmin = new int[len];
int []globalmin = new int [len];
globalmin[0] = localmin[0] = nums.get(0);
for (int i =1; i < len; i++ ) {
localmin[i] = Math.min(localmin[i-1]+nums.get(i),nums.get(i));
globalmin[i] = Math.min(globalmin[i-1],localmin[i]);
}
return globalmin[len-1];
}
}