【Leetcode 每日一题】1656. 设计有序流

news/2025/2/27 0:13:31/

问题背景

n n n ( i d , v a l u e ) (id, value) (id,value) 对,其中 i d id id 1 1 1 n n n 之间的一个整数, v a l u e value value 是一个字符串。不存在 i d id id 相同的两个 ( i d , v a l u e ) (id, value) (id,value) 对。
设计一个流,以 任意 顺序获取 n n n ( i d , v a l u e ) (id, value) (id,value) 对,并在多次调用时 i d id id 递增的顺序 返回一些值。
实现 OrderedStream 类:

  • OrderedStream(int n) 构造一个能接收 n n n 个值的流,并将当前指针 p t r ptr ptr 设为 1 1 1
  • String[] insert(int id, String value) 向流中存储新的 ( i d , v a l u e ) (id, value) (id,value) 对。存储后:
    • 如果流存储有 i d = p t r id = ptr id=ptr ( i d , v a l u e ) (id, value) (id,value) 对,则找出从 i d = p t r id = ptr id=ptr 开始的 最长 i d id id 连续递增序列 ,并 按顺序 返回与这些 i d id id 关联的值的列表。然后,将 p t r ptr ptr 更新为最后那个 i d + 1 id + 1 id+1
    • 否则,返回一个空列表。

数据约束

  • 1 ≤ n ≤ 1000 1 \le n \le 1000 1n1000
  • 1 ≤ i d ≤ n 1 \le id \le n 1idn
  • v a l u e . l e n g t h = 5 value.length = 5 value.length=5
  • v a l u e value value 仅由小写字母组成
  • 每次调用 i n s e r t insert insert 都会使用一个唯一的 i d id id
  • 恰好调用 n n n i n s e r t insert insert

解题过程

阅读理解题,简单来说就是按索引存储之后,一直输出到存储的内容为空的位置再停下。

具体实现

class OrderedStream {private int ptr = 1;String[] stream;public OrderedStream(int n) {stream = new String[n + 2];}public List<String> insert(int idKey, String value) {List<String> res = new ArrayList<>();stream[idKey] = value;while (stream[ptr] != null) {res.add(stream[ptr]);ptr++;}return res;}
}/*** Your OrderedStream object will be instantiated and called as such:* OrderedStream obj = new OrderedStream(n);* List<String> param_1 = obj.insert(idKey,value);*/

http://www.ppmy.cn/news/1575117.html

相关文章

MacOS安装Emacs

个人博客地址&#xff1a;MacOS安装Emacs | 一张假钞的真实世界 在MacOS X上可以使用Homebrew 安装Emacs&#xff1a; $ brew install emacs --with-cocoa 或者用MacPorts&#xff1a; $ sudo port install emacs-app OSX Emacs 网站提供了通用的二进制包。 前两种方法安装…

使用 pytest-mock 进行 Python 高级单元测试与模拟

一、单元测试与模拟的意义 在软件开发中,单元测试用于验证代码逻辑的正确性。但实际项目中,代码常依赖外部服务(如数据库、API、文件系统)。直接测试这些依赖会导致: 测试速度变慢测试结果不可控产生副作用(如真实发送邮件)模拟(Mocking) 技术通过创建虚拟对象替代真…

环境安装与配置:全面了解 Go 语言的安装与设置

在学习 Go 语言之前&#xff0c;首先需要确保开发环境已正确安装和配置。本部分将详细介绍如何在不同平台&#xff08;Windows、macOS 和 Linux&#xff09;上安装 Go 语言&#xff0c;以及如何进行环境变量配置和工作空间的设置。 一、安装 Go 语言 1. Windows 安装方法 下载…

牛客周赛 Round 82(思维、差分、树状数组、大根堆、前后缀、递归)

文章目录 牛客周赛 Round 82&#xff08;思维、差分、树状数组、大根堆、前后缀、递归&#xff09;A. 夹心饼干B. C. 食堂大作战&#xff08;思维&#xff09;D. 小苯的排列计数(差分、树状数组)E. 和和&#xff08;大根堆&#xff0c;前缀和&#xff09;F. 怎么写线性SPJ &…

Java进阶学习笔记95——网络编程

什么是网络编程&#xff1f; 可以让设备中的程序与网络上的其他设备中的程序进行数据交互&#xff08;实现网络通信的&#xff09;。 Java提供了哪些网络编程的解决方案呢&#xff1f; 基本的通信架构&#xff1a; 基本的通信架构有2种形式&#xff1a;CS架构&#xff08;Cli…

【数据挖掘】可信度

【数据挖掘】可信度 目录&#xff1a;1. 训练和测试2. 预测性能评估3. 数据挖掘方法比较分类方法聚类方法关联规则挖掘方法异常检测方法 4. 预测概率5. 损失函数6. 计算成本7. 成本敏感分类8. 提升图&#xff08;Lift Chart&#xff09;作用示例 9. ROC曲线&#xff08;Receive…

2024年国赛高教杯数学建模D题反潜航空深弹命中概率问题解题全过程文档及程序

2024年国赛高教杯数学建模 D题 反潜航空深弹命中概率问题 原题再现 应用深水炸弹&#xff08;简称深弹&#xff09;反潜&#xff0c;曾是二战时期反潜的重要手段&#xff0c;而随着现代军事技术的发展&#xff0c;鱼雷已成为现代反潜作战的主要武器。但是&#xff0c;在海峡或…

Unity FBXExport导出的FBX无法在Blender打开

将FBX转换为obj&#xff1a; Convert 3D models online - free and secure