rustgym/leetcode/
_1213_intersection_of_three_sorted_arrays.rs1struct 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}