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

1 Answer

0 votes
public class SortedRows {

    public static int sortedCount(int[][] matrix) {
        int result = 0;
        
        // Get the number of rows
        int rows = matrix.length;

        // Get the number of columns 
        int cols = matrix[0].length;
        
        // 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;
    }

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

        System.out.println("Number of sorted rows: " + sortedCount(matrix));
    }
}



/*
run:

Number of sorted rows: 3

*/

 



answered Oct 1 by avibootz
edited Oct 1 by avibootz
...