use std::collections::HashSet;
fn arr2d_to_sorted_1d(arr2d: &Vec<Vec<i32>>) -> Vec<i32> {
let mut v: Vec<i32> = arr2d.iter().flat_map(|x| x.iter()).cloned().collect();
v.sort();
let unique_hs: HashSet<i32> = v.into_iter().collect();
let mut sorted_unique_hs: Vec<i32> = unique_hs.into_iter().collect();
sorted_unique_hs.sort();
sorted_unique_hs
}
fn main() {
let arr2d = vec![
vec![5, 6, 1, 1, 1],
vec![3, 8, 0, 2, 2],
vec![9, 2, 7, 3, 3],
];
let sorted_unique_arr = arr2d_to_sorted_1d(&arr2d);
for n in sorted_unique_arr {
print!("{} ", n);
}
}
/*
run:
0 1 2 3 5 6 7 8 9
*/