I am struggling with the maxSubmatrixSum(matrix). I am new to Object Orientated and I thought I had a good understanding of it but clearly not. Why do I print 9 instead of 33?
using System; namespace Test { class Program { //You still have too many for loops in the max sum matrix one, you just need to traverse the //matrix find the sum as you go and compare it with the current max //If sum is greater than the current sum, you update the sum and change the matrix static void Main(string[] args) { //Function to find maximum sum submatrix, we need to use [,],→ character for our int static void maxSubmatrixSum(int[,] matrix) { // Stores the number of rows and columns in the matrix int r = matrix.GetLength(0); int c = matrix.GetLength(1); // initiates maximum submatrix sum to zero int maxSubmatrix = 0; // Makes each row the first in the array for (int i = 0; i < r; i++) { // Makes each column the first in the array for (int j = 0; j < c; j++) { // Stores the sum of submatrix having,→ topleft index(i, j) and bottom right index(k, l) int sumSubmatrix = 0; // iterate the submatrix row-wise and,→ calculate its sum for (int m = i; m <= i; m++) { for (int n = j; n <= j; n++) { sumSubmatrix += matrix[i, j]; } } // Update the maximum sum maxSubmatrix = Math.Max(maxSubmatrix, sumSubmatrix); } } // Print the answer Console.WriteLine(maxSubmatrix); } int[,] matrix = { { 0, 2, 4, 0, 9, 5 }, { 7, 1, 3, 3, 2, 1 }, { 1, 3, 9, 8, 5, 6 }, { 4, 6, 7, 9, 1, 0 } }; maxSubmatrixSum(matrix); } }