Я наткнулся на этот вопрос из интервью и хотел найти для него решение на JavaScript (а не на Java или C++):
Реализуйте структуру данных, подобную набору, которая эффективно поддерживает Insert, Remove и GetRandomElement. Пример: если вы вставляете элементы 1, 3, 6, 8 и удаляете 6, структура должна содержать [1, 3, 8]. Теперь GetRandom должен возвращать одно из 1, 3 или 8 с равной вероятностью.
Здесь на Java дан ответ: Структура данных: вставить, удалить, содержать, получить случайный элемент, все за O(1) Однако он не предлагает пример кода. Я новичок и только учусь использовать хеш-таблицы, поэтому, если вы можете дать объяснение кода, я был бы признателен!