Phỏng vấn top 150Dễ dàng

Lưu trữ giá trị khóa dựa trên thời gian

Hướng dẫn chi tiết và cách triển khai Python cho vấn đề 'Lưu trữ giá trị khóa dựa trên thời gian'.

Tuyên bố vấn đề

Dễ dàng

Thiết kế cấu trúc dữ liệu khóa-giá trị dựa trên thời gian có thể lưu trữ nhiều giá trị cho cùng một khóa ở các dấu thời gian khác nhau và truy xuất giá trị của khóa ở dấu thời gian nhất định.

Triển khai lớp TimeMap:

- TimeMap() Khởi tạo đối tượng.

- set(key: str, value: str, timestamp: int) Lưu trữ khóa key với giá trị value tại thời điểm nhất định timestamp.

- get(key: str, timestamp: int) -> str Trả về giá trị sao cho set đã được gọi trước đó với timestamp_prev <= timestamp. Nếu có nhiều giá trị như vậy, nó sẽ trả về giá trị được liên kết với timestamp_prev lớn nhất. Nếu không có giá trị nào, nó sẽ trả về "".

Ràng buộc
  • 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

Ví dụ

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?
Hãy cân nhắc việc sử dụng các cấu trúc dữ liệu dành riêng cho Tìm kiếm nhị phân như tập hợp hoặc vùng heap.
Edge Cases to Watch
  • Cấu trúc đầu vào trống
  • Đầu vào phần tử đơn
  • Giới hạn số lớn

Sẵn sàng để giải quyết?

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

Mở trong Trình chỉnh sửa
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

Tài nguyên Python được đề xuất

Mở rộng kiến thức của bạn với các hướng dẫn tương tác, bảng ghi chú và so sánh mã có liên quan.