Ответ
Для получения элементов массива, которых нет в слайсе, можно использовать map для быстрого поиска и фильтрации. Пример:
func diffArraySlice(arr [5]int, sl []int) []int {
set := make(map[int]bool)
for _, v := range sl {
set[v] = true
}
var result []int
for _, v := range arr {
if !set[v] {
result = append(result, v)
}
}
return result
}
Пример использования:
arr := [5]int{1, 2, 3, 4, 5}
sl := []int{2, 4}
fmt.Println(diffArraySlice(arr, sl)) // [1 3 5]
Ключевые моменты:
- Создаем map для быстрого поиска элементов слайса
- Проходим по массиву и проверяем наличие элементов в map
- Возвращаем новый слайс с отсутствующими элементами
Сложность O(n+m), где n и m - длины массива и слайса соответственно.