Форум программистов, компьютерный форум, киберфорум
Golang
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
Старый
[golang] Insert Delete GetRandom O(1) (Leetcode: 380)
Запись от alhaos размещена 16.06.2026 в 13:50. Обновил(-а) alhaos 16.06.2026 в 13:59
Показов 875 Комментарии 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
Показов 835 Комментарии 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
Показов 2215 Комментарии 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
Показов 2687 Комментарии 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
Показов 2423 Комментарии 0
Метки go, golang, pattern

Worker Pool



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

Pipeline



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

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

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



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

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

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



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

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

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

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

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

Нажмите на изображение для увеличения
Название: Go 1.25 - возможности с примерами.jpg
Просмотров: 416
Размер:	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
Показов 6013 Комментарии 0

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

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

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



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



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

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

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

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

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

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

Когда БД находится где-то там далеко, и нужно выполнить кучу быстрых запросов, осознаешь, что накладные расходы на взаимодействие с сервером могут быть...
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru