Ответ
В Go можно удалить элемент из начала слайса за O(1), если порядок не важен, просто заменив первый элемент последним и уменьшив длину слайса:
s := []int{1, 2, 3, 4, 5}
s[0] = s[len(s)-1] // заменяем первый элемент последним
s = s[:len(s)-1] // укорачиваем слайс
Это работает за константное время, так как не требует перемещения элементов. Однако изменяет порядок элементов. Для сохранения порядка потребуется O(n) операция сдвига (s = s[1:]).