代码实现:
| class TimeMap: |
| |
| def __init__(self): |
| self.dct = defaultdict(list) |
| |
| def set(self, key: str, value: str, timestamp: int) -> None: |
| self.dct[key].append((timestamp, value)) |
| |
| def get(self, key: str, timestamp: int) -> str: |
| lst = self.dct[key] |
| left, right = -1, len(lst) |
| while left + 1 < right: |
| mid = (left + right) // 2 |
| if lst[mid][0] > timestamp: |
| right = mid |
| else: |
| left = mid |
| if right == 0: |
| return "" |
| else: |
| return self.dct[key][right - 1][1] |
Python-标准库
| class TimeMap: |
| |
| def __init__(self): |
| self.dct = defaultdict(list) |
| |
| def set(self, key: str, value: str, timestamp: int) -> None: |
| self.dct[key].append((timestamp, value)) |
| |
| def get(self, key: str, timestamp: int) -> str: |
| upper_bound = bisect_right(self.dct[key], timestamp, key=lambda _: _[0]) |
| if upper_bound == 0: |
| return "" |
| else: |
| return self.dct[key][upper_bound-1][1] |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效