Сложность: 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 {
function arraysIntersection($arr1, $arr2, $arr3) {
$counter = array();
foreach ($arr1 as $e) {
if (isset($counter[$e])) $counter[$e]++;
else $counter[$e] = 1;
}
foreach ($arr2 as $e) {
if (isset($counter[$e])) $counter[$e]++;
else $counter[$e] = 1;
}
foreach ($arr3 as $e) {
if (isset($counter[$e])) $counter[$e]++;
else $counter[$e] = 1;
}
$ans = array();
foreach ($counter as $key => $value) {
if ($value == 3) array_push($ans, $key);
}
return $ans;
}
}Ставь 👍 и забирай 📚 Базу знаний