Назад к вопросам
Senior
4
/** * Работа со слайсами * * На вход подаются два неупорядоченных слайса любой длины. * Надо написать функцию, которая возвращает их пересечение **/
Компании, где спрашивали
sber tech
Ответ от нейросети
sobes.tech AI
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 для эффективного поиска и исключения дубликатов в результате.