rustgym/leetcode/
_1213_intersection_of_three_sorted_arrays.rs

1struct Solution;
2
3use std::collections::BTreeMap;
4
5impl Solution {
6    fn arrays_intersection(arr1: Vec<i32>, arr2: Vec<i32>, arr3: Vec<i32>) -> Vec<i32> {
7        let mut btm: BTreeMap<i32, i32> = BTreeMap::new();
8        for x in arr1 {
9            *btm.entry(x).or_default() += 1;
10        }
11        for x in arr2 {
12            *btm.entry(x).or_default() += 1;
13        }
14        for x in arr3 {
15            *btm.entry(x).or_default() += 1;
16        }
17        let mut res = vec![];
18        for (k, v) in btm {
19            if v == 3 {
20                res.push(k);
21            }
22        }
23        res
24    }
25}
26
27#[test]
28fn test() {
29    let arr1 = vec![1, 2, 3, 4, 5];
30    let arr2 = vec![1, 2, 5, 7, 9];
31    let arr3 = vec![1, 3, 4, 5, 8];
32    let res = vec![1, 5];
33    assert_eq!(Solution::arrays_intersection(arr1, arr2, arr3), res);
34}