大家好,所有看过这篇文章的人。请帮我解决一个任务:在输入时,我有一个字节数组。为了压缩副本,我需要检测重复的字节序列。有人能帮我找到可接受的算法吗?
发布于 2021-06-09 03:37:18
通常,这种类型的问题伴随着CPU/内存的权衡。极端的解决方案是下面的(1)和(2),你可以从那里改进:
发布于 2021-06-09 02:41:57
构建一个分支都是字节类型的树(256个分支)。
然后遍历数组,构建新的子分支。在每个节点上,存储找到该序列的位置列表。
例如:假设您位于节点AC,40,2F。树中的这个序列意味着:在位置xx (其存储在该节点中的位置之一)处发现了字节AC。下一个字节40在位置yy=xx+1 (以及其他位置)。字节2F在位置zz=yy+1
现在你只想“压缩”某个大小的序列(比如5个)。因此,遍历这棵树,并注意深度为5或更多。在节点的第五个深度的子节点中,您已经存储了在数组中找到该序列(或更大值)的所有位置。这些位置是您有兴趣存储在压缩文件中的位置。
https://stackoverflow.com/questions/67892313
复制相似问题