首页 > 解决方案 > 流数据的最优数据结构

问题描述

我有一个形式的数据流[id, name, act, value, type]

id是一个整数,name一个字符串,act可以是'add','update'或'delete',value是一个整数,type要么是L要么R。我们只能添加一次id,执行多次更新,然后删除id。我显然在寻找一种数据结构,可以让我有效地插入这些数据。

我还需要能够以最快的方式在每一刻获得最高L价值name和最低R价值。name

我相信我需要使用堆来获得恒定的时间minmaxname。我的问题是我无法找到一种方法来同时删除和更新现有数据。

标签: pythoncontainers

解决方案


这里的措辞有点不清楚。让我试着改写一下:您正在寻找一个好的数据结构,这样,给定上面给出的形式的操作流,您可以添加、删除或更新项目(使用它们的 id 号找到)。而且您还想维护一些关于整个数据结构的汇总统计信息,例如最高 L 和最低 R 值。

这听起来正确吗?

如果您的 id 号码不在特定范围内,字典的字典听起来可能是正确的答案,或者如果是字典列表,则它可能是正确的答案。


推荐阅读