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

1 Answer

0 votes
fn sorted_count(matrix: &[Vec<i32>]) -> i32 {
    let mut result = 0;

    // Check for strictly increasing rows
    for row in matrix.iter() {
        if row.windows(2).all(|w| w[0] < w[1]) {
            result += 1;
        }
    }

    // Check for strictly decreasing rows
    for row in matrix.iter() {
        if row.windows(2).all(|w| w[0] > w[1]) {
            result += 1;
        }
    }

    result
}

fn main() {
    let matrix = vec![
        vec![1, 2, 3, 4, 5],
        vec![2, 3, 1, 8, 7],
        vec![8, 7, 6, 5, 4],
        vec![5, 7, 8, 9, 10],
    ];

    println!("Number of sorted rows: {}", sorted_count(&matrix));
}



/*
run:

Number of sorted rows: 3

*/

 



answered Oct 1 by avibootz
...