Форум программистов, компьютерный форум, киберфорум
Golang
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
Старый
[golang] Insert Delete GetRandom O(1) (Leetcode: 380)
Запись от alhaos размещена 16.06.2026 в 13:50. Обновил(-а) alhaos 16.06.2026 в 13:59
Показов 1041 Комментарии 0

Insert Delete GetRandom O(1)

Сложность: Medium
Источник: LeetCode 380

Задача

Реализовать структуру данных RandomizedSet, которая поддерживает следующие операции за O(1) в среднем:
  • Insert(val int) bool — добавляет элемент в набор. Возвращает true, если элемент был добавлен, и false, если он уже присутствовал.
  • Remove(val int) bool — удаляет элемент из набора. Возвращает true, если элемент был удален, и false, если его не было.
  • GetRandom()
...
Аватар для alhaos
Старый
[golang] Реализация стека с поддержкой получения минимального элемента за O(1)
Запись от alhaos размещена 16.06.2026 в 09:36. Обновил(-а) alhaos 16.06.2026 в 14:07
Показов 981 Комментарии 0

Min Stack

Сложность: Medium
Источник: LeetCode 155

Задача:
Реализовать стек который поддерживает push, pop, top и получение минимального элемента за O(1).

Методы:
  • NewMinStack() *MinStack — инициализация
  • Push(val int) — добавить элемент
  • Pop() — удалить верхний элемент
  • Top() int — вернуть верхний элемент
  • GetMin() int — вернуть минимальный элемент

Пример:
Code
1
2
3
4
push(-2), push(0), push(-3)
getMin() → -3
pop()
top()
...
Аватар для alhaos
Старый
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
Запись от alhaos размещена 10.06.2026 в 15:30
Показов 2386 Комментарии 0
Метки go, golang, http, pattern, problem

Задача

Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.

Сигнатура

Go
1
func Fetch(urls []string, maxConcurrent int) []Result
Пример
Go
1
2
3
4
5
6
urls := []string{
    "https://example.com",
    "https://google.com",
    "https://github.com",
}
results := Fetch(urls, 2) // не более 2 запросов одновременно
...
Аватар для alhaos
Старый
[golang] Состояние гонки (race condition)
Запись от alhaos размещена 10.06.2026 в 10:38
Показов 2931 Комментарии 0
Метки go, golang, race condition

Состояние гонки (race condition)

Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом результат выполнения программы начинает зависеть от случайного порядка выполнения потоков, что приводит к непредсказуемым результатам.

Модель

Go
1
2
3
4
5
6
7
package race
 
import (
  "sync"
)
 
// CounterWithRace функция
...
Аватар для alhaos
Старый
[golang] Worker Pool
Запись от alhaos размещена 09.06.2026 в 06:00. Обновил(-а) alhaos 09.06.2026 в 09:15
Показов 2728 Комментарии 0
Метки go, golang, pattern

Worker Pool



Worker Pool — паттерн конкурентной обработки задач в Go.
Суть: фиксированное количество горутин-воркеров читают задачи из общего канала
и пишут результаты в общий канал результатов. Количество воркеров задаётся
заранее — это позволяет контролировать...
Аватар для alhaos
Старый
[golang] Pipeline
Запись от alhaos размещена 08.06.2026 в 06:58. Обновил(-а) alhaos 08.06.2026 в 07:25
Показов 3860 Комментарии 0
Метки go, golang, pattern

Pipeline



Pipeline — паттерн конкурентной обработки данных в Go.
Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через каналы.
[source] → chan → [stage1] → chan → [stage2] → chan → [sink]
Что решает:

обработка...
Аватар для alhaos
Старый
[golang] Linked list
Запись от alhaos размещена 22.05.2026 в 14:05
Показов 1460 Комментарии 0
Метки datastructure, golang

Связный список / Linked list



Связный список структура данных позволяющая хранить список значений, в отличии от массива в памяти хранится не сплошным куском, а отдельными частями которые ссылаются на другие части, что позволяет менее затратно осуществлять операции вставки и удаления элементов.

Go
1
// Здесь реализован односвязный список в таком случае родительский элемент ссылается на дочерний,
...
Аватар для alhaos
Старый
[golang] Двоичная куча, min-heap
Запись от alhaos размещена 20.05.2026 в 18:57
Показов 1809 Комментарии 0
Метки datastructure, golang

Двоичная куча



Двоичная куча — структура данных, которая всегда держит самый важный элемент наготове.

Представьте очередь к хилеру в игре, и очередь из игроков в приоритете те у кого меньше всего HP.

Как она устроена внутри

Куча хранится в обычном массиве,...
Аватар для alhaos
Старый
[golang] Breadth-First Search
Запись от alhaos размещена 19.05.2026 в 14:47. Обновил(-а) alhaos 19.05.2026 в 20:51
Показов 2033 Комментарии 0
Метки algorithms, golang, graph

BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем переходить на следующий уровень. Алгоритм идеально подходит для поиска кратчайшего пути в невзвешенных...
Аватар для alhaos
Старый
[golang] Угол между стрелками часов
Запись от alhaos размещена 12.05.2026 в 13:05
Показов 5862 Комментарии 0
Метки golang, problem

По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов.

Go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import "math"
 
func angleClock(hour int, minutes int) float64 {
 
    const (
        oneMinuteAngle = 6.0
        oneHourAngle = 30.0
        oneMinuteForHourAngle = .5
    )
 
    if hour >= 12 {
        hour -= 12
    }
 
    minutesAngle := float64(minutes) * oneMinuteAngle
    hourAngle
...
Аватар для alhaos
Старый
Go 1.25 - возможности с примерами
Запись от golander размещена 26.09.2025 в 19:56 / go go just go
Показов 4923 Комментарии 0

Нажмите на изображение для увеличения
Название: Go 1.25 - возможности с примерами.jpg
Просмотров: 469
Размер:	108.1 Кб
ID:	11218
Последние несколько лет я постоянно сталкивался с одной и той же проблемой — как выжать максимум производительности из Go без жертвы читабельностью кода. С выходом Go 1.25 эта дилемма, кажется, начинает решаться на уровне самого языка.

Profile-Guided Optimization: из экспериментальной фичи в надежный инструмент



Наконец-то PGO (Profile-Guided Optimization) стабилизирована! Это больше не экспериментальная...
Аватар для golander
Старый
Лучшие фреймворки Go REST API
Запись от golander размещена 09.09.2025 в 21:11 / go go just go
Показов 6188 Комментарии 0

Нажмите на изображение для увеличения
Название: Лучшие фреймворки Go REST API.jpg
Просмотров: 507
Размер:	125.4 Кб
ID:	11166
Когда я впервые столкнулся с Go десять лет назад, ситуация с веб-фреймворками напоминала дикий запад – каждый писал свой велосипед и гордился этим. Стандартная библиотека net/http была настолько хороша, что многие считали фреймворки злом. "Настоящие гоферы пишут всё сами!" – кричали адепты чистого Go. Сейчас, оглядываясь назад, я улыбаюсь этому максимализму. Экосистема Go сильно изменилась. В мире, где микросервисы стали нормой, а не исключением, REST API превратились...
Аватар для golander
Старый
Слайсы в Go
Запись от golander размещена 15.04.2025 в 09:55 / go go just go
Показов 3907 Комментарии 0
Метки go, golang

Нажмите на изображение для увеличения
Название: b11450d5-24b0-4460-a9ff-f7ce5811b5a5.jpg
Просмотров: 302
Размер:	228.3 Кб
ID:	10594
Слайсы — важнейшая структура данных в Go, значение которой сложно переоценить. С момента создания языка разработчики Go позиционировали слайсы как основной механизм для работы с последовательностями данных. И не зря: слайсы сочетают гибкость и производительность, что делает их идеальным выбором для большинства задач.

Введение в слайсы Go



Базовая структура и принципы работы



В отличие от массивов с фиксированной...
Аватар для golander
Старый
Использование кэшей CPU: Максимальная производительность в Go
Запись от golander размещена 05.04.2025 в 16:55 / go go just go
Показов 4826 Комментарии 0

Нажмите на изображение для увеличения
Название: 3b7804e2-ba0c-4008-8371-9fee0e2b4d27.jpg
Просмотров: 288
Размер:	134.4 Кб
ID:	10535
Разработчикам хорошо известно, что эффективность кода зависит не только от алгоритмов и структур данных, но и от того, насколько удачно программа взаимодействует с железом. Среди множества факторов, влияющих на производительность, особое место занимает работа с кэш-памятью процессора. Именно кэш-память часто становится тем узким местом, которое ограничивает быстродействие даже самых элегантных...
Аватар для golander
Старый
Пакет Context в Golang: Управление потоками и ресурсами
Запись от golander размещена 04.04.2025 в 16:34 / go go just go
Показов 4051 Комментарии 0

Нажмите на изображение для увеличения
Название: a38062e3-9cef-48b5-974e-b53fc0fcbea1.jpg
Просмотров: 324
Размер:	75.6 Кб
ID:	10521
Работа с горутинами в Go часто напоминает управление непослушными детьми - они разбегаются кто куда, делают что хотят и не всегда завершаются вовремя. К счастью, в Go 1.7 появился пакет context, который помогает держать эту ватагу под контролем.

Предположим, есть веб-сервер,...
Аватар для golander
Старый
Рейтинг: 2.50. Голосов: 6.
Написание кастомного правила для go-playground/validator
Запись от DrType размещена 04.01.2024 в 14:14
Показов 1704 Комментарии 0
Метки go, golang

Юзаю пакет github.com/go-playground/validator/v10 для валидации запросов в Fiber (в пет-прожекте).
Захотелось иметь правило валидации наподобие ларавелевского exists. Реализовал следующим образом:
Go
1
2
3
4
5
6
7
8
9
10
11
12
package validators
 
import (
    "my-project/db"
    "fmt"
    "reflect"
    "strings"
 
    "github.com/go-playground/validator/v10"
)
 
func Exists(fl validator.FieldLevel) bool
...
Аватар для DrType
Старый
SQLite и GoLang
Запись от sqltd1 размещена 28.05.2022 в 11:59
Показов 1973 Комментарии 0
Метки go, golang, sqlite

Краткий обзор драйверов.

Тонкий момент в теме "SQLite и GoLang" состоит в том, что SQLite является встраиваемым движком БД.

Когда БД находится где-то там далеко, и нужно выполнить кучу быстрых запросов, осознаешь, что накладные расходы на взаимодействие с сервером могут быть...
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru