Kadane's algorithm
Code Example - Kadane's algorithm
public static int SumArray()
{
var arr = new int[]{ -2, -4, -5, -6, -7, -89, -56 };
var sum = 0;
var max = arr[0];
foreach (var item in arr)
{
sum += item;
// sum = Math.Max(sum,0); resting here will not give expected output
max = Math.Max(sum,max);
sum = Math.Max(sum,0);
}
return max;
}
kadane algorithm
public int kadane(int[] arr){
int max_so_far = 0, curr_max = Integer.MIN_VALUE;
for(int i: arr){
max_so_far += i;
if(max_so_far<0) max_so_far = 0;
if(max_so_far>curr_max) curr_max = max_so_far;
}
return curr_max;
}