How to count the number of sorted rows in either increasing or decreasing order in a matrix using C#

1 Answer

0 votes
using System;

class SortedRows
{
    static int SortedCount(int[,] matrix) {
        int result = 0;
        
         // Get the number of rows (first dimension)
        int rows = matrix.GetLength(0);

        // Get the number of columns (second dimension)
        int cols = matrix.GetLength(1);

        // Check for strictly increasing rows
        for (int i = 0; i < rows; i++) {
            int j;
            for (j = 0; j < cols - 1; j++) {
                if (matrix[i, j + 1] <= matrix[i, j]) {
                    break;
                }
            }
            if (j == cols - 1) {
                result++;
            }
        }

        // Check for strictly decreasing rows
        for (int i = 0; i < rows; i++) {
            int j;
            for (j = cols - 1; j > 0; j--) {
                if (matrix[i, j - 1] <= matrix[i, j]) {
                    break;
                }
            }
            if (cols > 1 && j == 0) {
                result++;
            }
        }

        return result;
    }

    static void Main()
    {
        int[,] matrix = {
            {1, 2, 3, 4, 5},
            {2, 3, 1, 8, 7},
            {8, 7, 6, 5, 4},
            {5, 7, 8, 9, 10}
        };

        Console.WriteLine("Number of sorted rows: " + SortedCount(matrix));
    }
}



/*
run:

Number of sorted rows: 3

*/

 



answered Oct 1, 2025 by avibootz
edited Oct 1, 2025 by avibootz
...