https://leetcode.com/problems/intersection-of-two-arrays-ii/description/ Easy

Решение

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()
}