首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找重复字节序列的算法

查找重复字节序列的算法
EN

Stack Overflow用户
提问于 2021-06-09 02:00:30
回答 2查看 47关注 0票数 1

大家好,所有看过这篇文章的人。请帮我解决一个任务:在输入时,我有一个字节数组。为了压缩副本,我需要检测重复的字节序列。有人能帮我找到可接受的算法吗?

EN

回答 2

Stack Overflow用户

发布于 2021-06-09 03:37:18

通常,这种类型的问题伴随着CPU/内存的权衡。极端的解决方案是下面的(1)和(2),你可以从那里改进:

  1. 高CPU /低内存-迭代所有可能的组合大小和字母并查找重复项(2对于statements)
  2. Low CPU /高内存-创建所有所需组合和长度的查找表(hash map),遍历数组并添加到表中,稍后遍历该表并从此处找到您的candidates
  3. Improve -想要从(2)使用较低内存的想法,减小查找表大小以获得更多命中,并在以后处理较低的问题。想要更快地查找序列长度,请为每个长度创建单独的查找表。
票数 2
EN

Stack Overflow用户

发布于 2021-06-09 02:41:57

构建一个分支都是字节类型的树(256个分支)。

然后遍历数组,构建新的子分支。在每个节点上,存储找到该序列的位置列表。

例如:假设您位于节点AC,40,2F。树中的这个序列意味着:在位置xx (其存储在该节点中的位置之一)处发现了字节AC。下一个字节40在位置yy=xx+1 (以及其他位置)。字节2F在位置zz=yy+1

现在你只想“压缩”某个大小的序列(比如5个)。因此,遍历这棵树,并注意深度为5或更多。在节点的第五个深度的子节点中,您已经存储了在数组中找到该序列(或更大值)的所有位置。这些位置是您有兴趣存储在压缩文件中的位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67892313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档