Решение
fun intersect(nums1: IntArray, nums2: IntArray): IntArray {
val map = mutableMapOf<Int, Int>() // Словарь для хранения количества каждого элемента в nums1
val result = mutableListOf<Int>() // Список для хранения результата
// Подсчитываем количество каждого элемента в nums1
for (num in nums1) {
map[num] = map.getOrDefault(num, 0) + 1
}
// Проходим по nums2 и добавляем общие элементы в результат
for (num in nums2) {
if (map.containsKey(num) && map[num]!! > 0) {
result.add(num) // Добавляем элемент в результат
map[num] = map[num]!! - 1 // Уменьшаем счетчик для элемента
}
}
// Преобразуем результат в массив и возвращаем
return result.toIntArray()
}