Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Middle — Senior
5
Потокобезопасный вывод уникальных элементов из массива с использованием карты
Компании, где спрашивали:
HyperRus
Условие задачи
Необходимо изменить программу так, чтобы:
- из среза
numsвыводились только неповторяющиеся числа; - для контроля уникальности использовалась карта;
- решение корректно работало в многопоточной среде с горутинами.
package main
import (
"log"
)
func main() {
nums := []int{3, 3, 2, 1, 2, 1, 1, 2, 4}
var uniqMap map[int]struct{}
for _, num := range nums {
go func() {
if _, ok := uniqMap[num]; ok {
return
}
uniqMap[num] = struct{}{}
log.Println(num)
}()
}
}