TGViewer
Algorithmics: хакаем алгоритмические собесы Algorithmics: хакаем алгоритмические собесы @algorithmics_cl · 1.45K subscribers
Post #69 1.31K
Структура для хранения уникальных значений

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

Сложность: 🟠 Средняя


ℹ️ Описание

Реализуйте структуру данных для управления числами, которая имплементируют следующие методы:

▶️ Insert — добавляет новый элемент в структуру без создания дубликатов.

▶️ Remove — удаляет выбранный элемент из массива.

▶️ GetRandom — возвращает случайного элемент из ранее добавленных с равной вероятностью.

⚠️ Ограничения

Все методы должны работать с константной сложностью по времени — O(1).

1️⃣ Пример

Добавление значений в структуру.


const store = new Store()

store.insert(1)
store.insert(2)
store.insert(3)
store.insert(2)

// values — 1, 2, 3


2️⃣ Пример

Удаление значений из структуры.


const store = new Store()

store.insert(1)
store.insert(2)
store.insert(3)
store.remove(2)

// values — 1, 3


3️⃣ Пример

Получение случайного значения из структуры.


const store = new Store()

store.insert(1)
store.insert(2)
store.insert(3)

const value = store.getRandom()

// value — 1 (2 или 3 с одинаковой вероятностью)


✅ Решение

Посмотреть решение

#arrays #maps #medium
algorithmics-blog.github.io Структура для хранения уникальных значений Подробный разбор решения задачи с примерами на языках TypeScript и GO
  • 👍 5
  • 🔥 2
  • ❤ 1
More from @algorithmics_cl
  1. Feb 8, 2025Количество провинций Давайте закрепим знания про Disjoint Set новой задачей. Сложность: 🟡…
  2. Feb 4, 2025Disjoint Set Привет, друзья! Сегодня мы с вами не будем решать конкретную задачу, а познак…
  3. Dec 4, 2024Так как в этой задаче баланс между операциями записи и чтения смещен в сторону записи, нам…
  4. Dec 4, 2024Система поиска подсказок Ранее мы уже разбирали задачу, в которой нужно было реализовать с…
  5. Oct 29, 2024Префиксное дерево (Trie) Префиксное дерево, или Trie (произносится как «три») — это структ…
  6. Oct 11, 2024Максимальная сумма парных элементов связного списка Продолжаем изучение связанных списков…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →