• Задача
  • Решение
  • Обсуждение

DoubleAll: параллельно с результатами

Миша конкурентно удваивает элементы с результатами в исходном порядке. Реализуйте doubleAll(nums []int) []int: каждая горутина пишет в свой индекс результата, порядок сохраняется.

GolangРешение
func doubleAll(nums []int) []int {
	results := make([]int, len(nums))
	var wg sync.WaitGroup
	for i, n := range nums {
		wg.Add(1)
		go func(i, n int) {
			defer wg.Done()
			results[i] = n * 2
		}(i, n)
	}
	wg.Wait()
	return results
}

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

00:00:00
Наш сайт собирает куки. Чтобы тебе было удобнее им пользоваться. Нажимая на кнопку, ты даёшь разрешение собирать куки