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

1 Answer

0 votes
package main

import (
    "fmt"
)

func sortedCount(matrix [][]int) int {
    result := 0
    rows := len(matrix)
    cols := len(matrix[0])

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

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

    return result
}

func main() {
    matrix := [][]int{
        {1, 2, 3, 4, 5},
        {2, 3, 1, 8, 7},
        {8, 7, 6, 5, 4},
        {5, 7, 8, 9, 10},
    }

    fmt.Println("Number of sorted rows:", sortedCount(matrix))
}


/*
run:

Number of sorted rows: 3

*/

 



answered Oct 1 by avibootz
...