How to check if a matrix rows contain numbers without repetition in Rust

1 Answer

0 votes
use std::collections::HashSet;

fn rows_have_unique_numbers(matrix: &[Vec<i32>]) -> bool {
    for row in matrix {
        let mut seen = HashSet::new();
        for &num in row {
            if !seen.insert(num) {
                // If `insert` returns false, the number is a duplicate
                return false;
            }
        }
    }
    true
}

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

    let has_unique_rows = rows_have_unique_numbers(&matrix);
    println!("Rows have unique numbers: {}", has_unique_rows);

    let matrix_with_repeats = vec![
        vec![1, 2, 3],
        vec![4, 4, 6], // 4, 4
        vec![7, 8, 9],
    ];

    let has_unique_rows = rows_have_unique_numbers(&matrix_with_repeats);
    println!("Rows have unique numbers: {}", has_unique_rows);
}


  
   
/*
run:
   
Rows have unique numbers: true
Rows have unique numbers: false
   
*/

 

 



answered May 23 by avibootz
...