尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

LC.981 | 基于时间的键值存储 | 哈希 | upper_bound快速定位

LC.981 | 基于时间的键值存储 | 哈希 | upper_bound快速定位
📅 发布时间:2026/6/18 20:29:29

输入:

  • set(key, value, timestamp)
  • get(key, timestamp)

要求:

  • 同一个key在不同timestamp可以存多次
  • get需要返回:timestamp_prev <= timestamp的最大那次对应的 value
  • 如果不存在返回空串""

输出:

  • set:无返回
  • get:string

思路:

这题的核心就是:对每个 key,把 (timestamp -> value) 存起来,并且能快速找“<= timestamp 的最大时间点”。

数据结构选择:

  • 外层:unordered_map<string, ...>通过 key 快速定位一组记录
  • 内层:map<int, string>自动按 timestamp 升序存放,支持二分相关操作

get(key, timestamp)怎么找?

  • 用upper_bound(timestamp):它返回第一个 > timestamp 的迭代器
  • 那么“<= timestamp 的最大值”就是它的前一个位置
  • 特判两种情况:
    1. 这个 key 压根不存在 ->""
    2. upper_bound指向 begin,说明所有 timestamp 都 > 目标 ->""
    3. 否则--it返回答案

复杂度:

  • 时间复杂度:
    • set:O(log M)
    • get:O(log M)
    • 其中 M 是某个 key 下存了多少条记录
  • 空间复杂度:O(总记录数)

classTimeMap{unordered_map<string,map<int,string>>m;public:TimeMap(){}voidset(string key,string value,inttimestamp){m[key][timestamp]=value;}stringget(string key,inttimestamp){if(m.find(key)==m.end())return"";map<int,string>&time_m=m[key];autoit=time_m.upper_bound(timestamp);// first > timestampif(it==time_m.begin())return"";// all > timestamp--it;// last <= timestampreturnit->second;}};

相关新闻

  • 深度学习毕设选题推荐:基于深度卷积神经网络(CNN)模型的图像着色研究与应用系统实现
  • OLMo 2:全开放语言模型的专业的技术突破与实践
  • 十二月《代码大全》读后感三

最新新闻

  • Playwright自动化测试:从核心原理到实战应用的全方位指南
  • Claude Opus 4.7工程落地风险:不可控性如何摧毁AI生产信任
  • Django毕设项目: 基于 Django+Vue 的农业设备智能运维管理系统的设计与实现 基于 Django+Vue 的现代农业一体化管理系统(源码+文档,讲解、调试运行,定制等)
  • PowerPC 601缓存时序与总线仲裁机制深度解析
  • 一念成仙:看山不是山,看水不是水,为什么OPC创业的核心是商业模式,而非代码本身
  • 国内主流打包机厂家实测排行 适配电商物流多场景 - 起跑123

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号