How to merge two sorted vectors without duplicates in Rust

1 Answer

0 votes
use std::collections::HashSet;

fn merge(arr1: Vec<i32>, arr2: Vec<i32>) -> Vec<i32> {
    let merged_set: HashSet<_> = arr1.into_iter().chain(arr2.into_iter()).collect();
    
    let mut merged_vec: Vec<i32> = merged_set.into_iter().collect();
    
    merged_vec.sort();
    
    merged_vec
}

fn main() {
    let arr1 = vec![1, 2, 2, 3, 7, 7, 7, 8, 9];
    let arr2 = vec![0, 0, 4, 4, 4, 5, 6, 7, 7, 8];
    
    let merged_array = merge(arr1, arr2);
    
    println!("{:?}", merged_array);
}


    
/*
run:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  
*/

 



answered Oct 10, 2024 by avibootz

Related questions

2 answers 233 views
1 answer 112 views
1 answer 100 views
100 views asked Oct 9, 2024 by avibootz
2 answers 177 views
2 answers 130 views
...