How to search for a number in a sorted matrix in Rust

1 Answer

0 votes
fn search_matrix(matrix: &[Vec<i32>], target: i32) -> bool {
    let rows = matrix.len();
    if rows == 0 {
        println!("Not found");
        return false;
    }
    let cols = matrix[0].len();

    let mut row = 0;
    let mut col = cols as isize - 1;

    while row < rows && col >= 0 {
        let value = matrix[row][col as usize];
        if value == target {
            println!("Found: i = {} j = {}", row, col);
            return true;
        } else if value > target {
            col -= 1;
        } else {
            row += 1;
        }
    }

    println!("Not found");
    return false;
}

fn main() {
    let matrix = vec![
        vec![2, 3, 5, 7, 8],
        vec![10, 13, 17, 18, 19],
        vec![25, 26, 30, 37, 38],
        vec![43, 46, 50, 51, 99],
    ];

    search_matrix(&matrix, 37);
}



/*
run:

Found: i = 2 j = 3

*/

 



answered Oct 8, 2025 by avibootz
...