public static int kadanesAlgorithm(int[] array) {
int maxEndingHere = array[0];
int maxSoFar = array[0];
for(int i=1; i<array.length; i++){
maxEndingHere = Math.max(maxEndingHere+ array[i], array[i]);
maxSoFar = Math.max(maxSoFar, maxEndingHere);
}
return maxSoFar;
}