• Acest algoritm se bazează pe algoritmul lui Kadane
• Complexitate : O(N² * M)
•Pentru mai multe detalii : link
•Cod C++ :
int kadane(int vec[], int s){
int sum = -1, maxi = INT_MIN;
for(int i = 1; i <= s; i++){
if(sum < 0)
sum = 0;
sum += vec[i];
if(sum > maxi)
maxi = sum;
}
return maxi;
}
for(int i = 1; i <= n; i++){
for(int f = 1; f <= m; f++)
s[f] = 0;
for(int j = i; j <= m; j++){
for(int k = 1; k <= m; k++){
s[k] += a[j][k];
}
sum = kadane(s, m);
if(sum > maxi)
maxi = sum;
}
}