Top 150 InterviewЛегко

Хранилище значений ключей на основе времени ---ПИСЕП--- Подробное руководство и реализация __PYTERM_0__ для решения проблемы «Хранилище значений ключей на основе времени». ---ПИСЕП--- Разработайте структуру данных «ключ-значение», основанную на времени, которая может хранить несколько значений для одного и того же ключа с разными метками времени и получать значение ключа в определенную метку времени. Реализуйте класс __PYCODE_0__: - __PYCODE_1__ Инициализирует объект. - __PYCODE_2__ Сохраняет ключ __PYCODE_3__ со значением __PYCODE_4__ в заданный момент времени __PYCODE_5__. - __PYCODE_6__ Возвращает значение, такое, что __PYCODE_7__ ранее вызывался с __PYCODE_8__. Если таких значений несколько, возвращается значение, связанное с самым большим __PYCODE_9__. Если значений нет, возвращается __PYCODE_10__. ---ПИСЕП--- 150 лучших интервью ---ПИСЕП--- Бинарный поиск ---ПИСЕП--- Проблема «Хранилища значений ключей на основе времени» является ключевой проблемой в разделе двоичного поиска. ---ПИСЕП--- Эта реализация фокусируется на логике простого уровня в __PYTERM_0__. ---ПИСЕП--- В предоставляемых нами решениях мы уделяем приоритетное внимание технической точности и читаемости кода. ---ПИСЕП--- Алгоритмическая инженерия ---ПИСЕП--- Соревновательное программирование ---ПИСЕП--- Технические оценки ---ПИСЕП--- Визуализация логического потока для хранилища значений ключей на основе времени. ---ПИСЕП--- Внимательно прочтите формулировку проблемы для хранилища значений ключей на основе времени. ---ПИСЕП--- Нарисуйте простое итеративное решение. ---ПИСЕП--- Ищите лишние вычисления. ---ПИСЕП--- Используйте хеширование или сортировку, чтобы ускорить процесс. ---ПИСЕП--- Очистите код для производственных стандартов. ---ПИСЕП--- Пустые входные структуры ---ПИСЕП--- Одноэлементные входы ---ПИСЕП--- Большие числовые границы ---ПИСЕП--- Объясните логику вашего подхода к бинарному поиску. ---ПИСЕП--- Обсудите крайние случаи, такие как нулевые или пустые входные данные. ---ПИСЕП--- Применяются стандартные свойства задачи двоичного поиска. ---ПИСЕП--- Рассмотрите возможность использования структур данных, специфичных для двоичного поиска, таких как наборы или кучи. ---ПИСЕП--- Медиана двух отсортированных массивов ---ПИСЕП--- Подробное руководство и реализация __PYTERM_0__ для задачи «Медиана двух отсортированных массивов». ---ПИСЕП--- Учитывая два отсортированных массива __PYCODE_0__ и __PYCODE_1__ размером __PYCODE_2__ и __PYCODE_3__ соответственно, верните медиану двух отсортированных массивов. Общая сложность времени выполнения должна составлять O(log(m+n)). Напишите функцию __PYCODE_4__. ---ПИСЕП--- 150 лучших интервью ---ПИСЕП--- Бинарный поиск ---ПИСЕП--- Проблема «Медиана двух отсортированных массивов» — ключевая задача в разделе двоичного поиска. ---ПИСЕП--- Эта реализация фокусируется на логике жесткого уровня в __PYTERM_0__. ---ПИСЕП--- В предоставляемых нами решениях мы уделяем приоритетное внимание технической точности и читаемости кода. ---ПИСЕП--- Алгоритмическая инженерия ---ПИСЕП--- Соревновательное программирование ---ПИСЕП--- Технические оценки ---ПИСЕП--- Визуализация логического потока для медианы двух отсортированных массивов. ---ПИСЕП--- Внимательно прочитайте постановку задачи для медианы двух отсортированных массивов. ---ПИСЕП--- Нарисуйте простое итеративное решение. ---ПИСЕП--- Ищите лишние вычисления. ---ПИСЕП--- Используйте хеширование или сортировку, чтобы ускорить процесс.

Detailed guide and Python implementation for the 'Time Based Key Value Store' problem.

Постановка задачи

Легко

Design a time-based key-value data structure that can store multiple values for the same key at different time stamps and retrieve the key's value at a certain timestamp.

Implement the TimeMap class:

- TimeMap() Initializes the object.

- set(key: str, value: str, timestamp: int) Stores the key key with the value value at the given time timestamp.

- get(key: str, timestamp: int) -> str Returns a value such that set was called previously, with timestamp_prev <= timestamp. If there are multiple such values, it returns the value associated with the largest timestamp_prev. If there are no values, it returns "".

Ограничения
  • 1 <= key.length, value.length <= 100
  • key and value consist of lowercase English letters and digits
  • 1 <= timestamp <= 10^7
  • All timestamps of set are strictly increasing for each key
  • At most 2 * 10^5 calls will be made to set and get

Примеры

Example 1
Input
["TimeMap", "set", "get", "get", "set", "get", "get"]
[[], ["foo", "bar", 1], ["foo", 1], ["foo", 3], ["foo", "bar2", 4], ["foo", 4], ["foo", 5]]
Output
[None, None, "bar", "bar", None, "bar2", "bar2"]
Explanation

set("foo", "bar", 1): stores bar at time 1. get("foo", 1): returns "bar". get("foo", 3): returns "bar" (latest value at or before time 3). set("foo", "bar2", 4): stores bar2 at time 4. get("foo", 4): returns "bar2". get("foo", 5): returns "bar2".

Need a Hint?
Consider using Binary Search-specific data structures like sets or heaps.
Edge Cases to Watch
  • Empty input structures
  • Single element inputs
  • Large numerical bounds

Готовы решить?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Открыть в редакторе
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Рекомендуемые ресурсы Python

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

Учебник по Python

Python Datetime

Узнайте, как обрабатывать даты, время, часовые пояса и вычисления в Python. Освойте форматирование, синтаксический анализ и арифметику с использованием datetime и timedelta.

Посмотреть ресурс
Практическое руководство

Как отсортировать словарь по значению в Python

Узнайте, как сортировать словарь Python по его значениям. Откройте для себя сортировку с использованием sorted(), пользовательских лямбда-выражений ключей и создание упорядоченных структур dict.

Посмотреть ресурс
Шпаргалка

Шпаргалка по форматированию DateTime в Python

Узнайте, как анализировать и форматировать дату и время в Python, используя datetime, strftime и strptime.

Посмотреть ресурс
Сравнение языков

Python против JavaScript: какой язык программирования лучше?

Всестороннее сравнение Python и JavaScript. Изучите синтаксические различия, производительность, варианты использования (серверная и клиентская части) и примеры кодирования.

Посмотреть ресурс