当前位置: 首页 > news >正文

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

输入:

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

要求:

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

输出:

  • set:无返回
  • getstring

思路:

这题的核心就是:对每个 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;}};
http://www.jsqmd.com/news/178152/

相关文章:

  • 深度学习计算机毕设之基于 Inception-ResNet模型的皮肤癌分类系统实现
  • 深度学习毕设选题推荐:基于深度卷积神经网络(CNN)模型的图像着色研究与应用系统实现
  • 深度学习毕设选题推荐:基于卷积网络结构的火灾检测系统实现
  • 【Life】2026 New Year
  • 2026.1.1
  • ADVANCE Day33
  • 深度学习毕设项目推荐-基于卷积网络结构的火灾检测系统实现
  • ADVANCE Day34
  • OLMo 2:全开放语言模型的专业的技术突破与实践
  • OLMo 2:全开放语言模型的专业的技术突破与实践
  • 吐血推荐研究生必备!10款一键生成论文工具深度测评
  • 十二月《代码大全》读后感三
  • 公选课选课系统设计
  • 集成电感式传感器:亚微米级精度方案
  • vllm --root-path 参数和 nginx 的配合
  • 十二月《代码大全》读后感二
  • AI原生应用开发:跨语言理解的最佳实践
  • 计算机深度学习毕设实战-基于卷积网络结构的火灾检测系统实现
  • TMS320F28003开发全攻略:从入门到精通
  • 环境仿真软件:EcoPath with Ecosim_(8).模型验证与不确定性分析v1
  • 计算机深度学习毕设实战-基于卷积网络结构的火灾检测系统实现
  • 深度学习毕设项目推荐-基于图像处理和机器学习的水浑浊度预测研究与系统实现
  • 环境仿真软件:EcoPath with Ecosim_(6).数据输入与输出
  • 【物联网】ESP32-C3 门禁系统方案
  • 深度学习毕设项目:基于卷积网络结构的火灾检测系统实现
  • 端口、五元组与网络真相:从 HTTP 请求到系统底层的完整旅程
  • 【CMake】CMake 基础笔记
  • 环境仿真软件:EcoPath with Ecosim_(7).生态学过程模拟
  • 【计算机毕业设计案例】基于卷积网络结构的火灾检测系统实现
  • 深度学习计算机毕设之基于卷积网络结构的火灾检测系统实现