news 2026/6/9 23:47:33

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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;}};
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/7 11:55:54

位同步--FPGA实现Gardner算法(1)

自己学习&#xff0c;记录一下&#xff0c;AI知乎书 无需载波同步的位同步技术- Gardner算法 总概括&#xff1a; 就是通过观察“前后两个符号的中间那个点有没有归零”&#xff0c;来告诉 NCO “走快点”还是“走慢点”&#xff0c;从而让内插器始终抓在信号张开得最大的那个最…

作者头像 李华
网站建设 2026/6/7 11:44:58

【课程设计/毕业设计】基于卷积网络结构的火灾检测系统实现

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/7 11:43:09

环境仿真软件:EcoPath with Ecosim_(4).Ecosim模型动态模拟

Ecosim模型动态模拟 1. Ecosim模型概述 Ecosim 是 EcoPath with Ecosim (EwE) 软件中的动态模拟模块&#xff0c;用于模拟生态系统中各个组分的动态变化过程。Ecosim 模型通过时间序列数据和动态参数&#xff0c;可以预测生态系统在不同管理措施下的响应。该模块的主要功能包括…

作者头像 李华
网站建设 2026/6/7 12:21:40

环境仿真软件:EcoPath with Ecosim_(5).模型参数设置与调整

模型参数设置与调整 在使用EcoPath with Ecosim进行环境仿真时&#xff0c;模型参数的设置与调整是至关重要的步骤。模型参数直接影响仿真结果的准确性和可靠性。本节将详细介绍如何设置和调整这些参数&#xff0c;以确保模型能够准确反映生态系统的真实情况。 1. 参数设置的基…

作者头像 李华
网站建设 2026/6/8 15:27:51

环境仿真软件:EcoPath with Ecosim_(7).生态学过程模拟

生态学过程模拟 引言 在环境仿真软件中&#xff0c;生态学过程的模拟是理解生态系统动态的关键。EcoPath with Ecosim (EwE) 是一个广泛应用于生态系统建模的工具&#xff0c;它通过生态路径模型和时间动态模拟来帮助科学家和决策者分析生态系统中的各种生态过程。本节将详细介…

作者头像 李华
网站建设 2026/6/8 15:15:50

环境仿真软件:EcoPath with Ecosim_(8).模型验证与不确定性分析

模型验证与不确定性分析 模型验证 模型验证是确保仿真模型能够准确反映现实生态系统的关键步骤。在EcoPath with Ecosim (EwE) 中&#xff0c;模型验证主要包括以下几个方面&#xff1a; 1. 数据质量控制 在构建模型之前&#xff0c;需要确保输入数据的准确性和完整性。EwE…

作者头像 李华