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
*/