import java.util.LinkedList;
import java.util.List;
public class E42GreatestSumOfSubArray {
public static int getGreatestSum(int[] data, int length){
if (data == null || length <= 0)
throw new IllegalArgumentException("Invalid Input");
int currentSum = 0;
int greatestSum = 0x80000000;
for (int i = 0; i < length; i ++){
if (currentSum < 0) {
currentSum = data[i];
}
else{
currentSum += data[i];
}
if (currentSum > greatestSum)
greatestSum = currentSum;
}
return greatestSum;
}
public static void main(String[] args){
int[] data = {1, 2, -1, 6, 7, -5, 12};
System.out.println("\nSum: " + E42GreatestSumOfSubArray.getGreatestSum(data, 7));
}
}