gpt4 book ai didi

c++ - 为两个序列中第一个匹配项的距离之和提出一个最优算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:04:46 24 4
gpt4 key购买 nike

我有两个列表,比如 L1 和 L2,两个列表长度的(最小)总和。

例如:

89 145 42 20 4 16 37 58 89

20 4 16 37 58 89

输出:5

89 145 42 20 4 16 37 58 89

56 678 123 65467

输出:0

19 82 68 100 1

100 1

输出:5

谢谢,

PS:我选择的语言是 C 和 C++,因此是标签。

最佳答案

将较短的列表添加到散列(字典)键=数字,值=列表中第一个实例的索引

遍历另一个列表并尝试在散列中查找每个元素。进行匹配时,将索引加在一起(哈希值加上列表中的当前索引)

这在 O(n) 中运行

boost::unordered_map 或 stdex::hash_map 可用于散列

关于c++ - 为两个序列中第一个匹配项的距离之和提出一个最优算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4760768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com