gpt4 book ai didi

java - 交叉记录列表

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:51:15 25 4
gpt4 key购买 nike

我有 2 个列表 -

  • List<String> RecordIdByPriority
  • List<String> RecordId .

顾名思义 - 第一个列表包含按插入优先顺序排列的记录。
这个想法是从第二个列表中找到最高优先级记录的存在。

如果优先列表包含<A,D,E> ,第二个包含 <B,E,M> - 预期输出为“E”。

鉴于第二个列表可能很大 - 以最有效的方式实现此目的的数据结构/例程是什么

最佳答案

您可以进行一些一次性预处理,将 List<String> RecordIdByPriority 变为进入HashMap<String, Integer>将列表中的每个项目映射到它在列表中的位置。在您的示例中 { A -> 0, D -> 1, E -> 2 }。然后单次通过 RecordId list根据hash map找到最小元素。在 map 中找不到的元素具有 +infinity 的隐式优先级。

这意味着您可以在 O(n) 中找到元素,其中 n 是记录 ID 列表的长度。

关于java - 交叉记录列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50636637/

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