* Работа со слайсами

go func intersection(a, b []int) []int { m := make(map[int]struct{}) for , v := range a { m[v] = struct{}{} }

Короткий ответ

Что ответить на собеседовании

go func intersection(a, b []int) []int { m := make(map[int]struct{}) for , v := range a { m[v] = struct{}{} }

Подробный разбор

Ответ с пояснениями

Условие

/**

  • Работа со слайсами
  • На вход подаются два неупорядоченных слайса любой длины.
  • Надо написать функцию, которая возвращает их пересечение **/

Ответ

go func intersection(a, b []int) []int { m := make(map[int]struct{}) for _, v := range a { m[v] = struct{}{} }

resultMap := make(map[int]struct{})
for _, v := range b {
    if _, ok := m[v]; ok {
        resultMap[v] = struct{}{}
    }
}

result := make([]int, 0, len(resultMap))
for v := range resultMap {
    result = append(result, v)
}

return result

}


Функция принимает два слайса целых чисел, создает хэш-таблицу для первого слайса, затем проверяет элементы второго слайса на наличие в первом. Результат — слайс с уникальными элементами, которые встречаются в обоих входных слайсах. Используется map для эффективного поиска и исключения дубликатов в результате.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее