Professional Documents
Culture Documents
Kadane
Kadane
void kadane(int input[], int n, int &x1, int &x2, int &max)
{
int cur, i;
max = 0;
cur = 0;
x1 = x2 = 0;
int lx1, lx2;
lx1 = 0;
for(int i = 0; i<n; i++)
{
cur = cur+input[i];
if(cur > max)
{
max = cur;
x2 = i;
x1 = lx1;
}
if (cur < 0)
{
cur = 0;
lx1 = i + 1;
}
}
}
Now we can extend this 1D kadane algorithm to 2D kadane algorithm and can find the max sum in
a N*N matrix in O(N^3).