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