Сложность: easy
Даны три целочисленных массива arr1, arr2 и arr3, отсортированных в строго возрастающем порядке. Верните отсортированный массив, содержащий только те целые числа, которые присутствуют во всех трех массивах.
Пример:
Input: arr1 = [1,2,3,4,5], arr2 = [1,2,5,7,9], arr3 = [1,3,4,5,8]
Output: [1,5]
Explanation: Only 1 and 5 appeared in the three arrays.
👨💻 Алгоритм:
1⃣Инициализируйте counter как TreeMap для записи чисел, которые появляются в трех массивах, и количество их появлений.
2⃣Пройдитесь по массивам arr1, arr2 и arr3, чтобы посчитать частоты появления элементов.
3⃣Итерация через counter, чтобы найти числа, которые появляются три раза, и вернуть их в виде отсортированного массива.
😎 Решение:
class Solution {
func arraysIntersection(_ arr1: [Int], _ arr2: [Int], _ arr3: [Int]) -> [Int] {
var counter = [Int: Int]()
for e in arr1 {
counter[e, default: 0] += 1
}
for e in arr2 {
counter[e, default: 0] += 1
}
for e in arr3 {
counter[e, default: 0] += 1
}
var ans = [Int]()
for (key, value) in counter where value == 3 {
ans.append(key)
}
return ans
}
}Ставь 👍 и забирай 📚 Базу знаний