arrays - 查找给定列表上某些元素的所有索引。 Haskell 中没有数组的情况下可以在小于 O(n^2) 的时间内完成吗?

标签 arrays list haskell array-algorithms

给定 2 个唯一、可排序、不连续元素的列表,例如:

['d', 'a', 'z', 'b']

我想在另一个列表中找到他们的索引,例如:

['a', 'b', 'z', 'd']

结果将是一个包含其位置的列表:

[3, 0, 2, 1]  -- element at 0 is at 3,
              -- element at 1 is at 0, etc.

最佳答案

一个简单的解决方案是使用第二个列表创建 Data.Map 或哈希表,这样您就可以进行 O(log n) 次索引查找,而不是 O(n) 次索引查找。

关于arrays - 查找给定列表上某些元素的所有索引。 Haskell 中没有数组的情况下可以在小于 O(n^2) 的时间内完成吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28755159/

相关文章:

haskell - 获取嵌套列表的头和尾

haskell - 我是否需要采取明确的操作来促进与持久数据结构的共享?

c - 如何释放在C中作为函数参数传递的字符数组

javascript - 在 AngularJS 中配对数组的相似对象

java - char 数组值未更改为大写

Python 查找出现次数超过 3 次的重复项

c++ - 如何创建具有固定索引的 QList

arrays - 将文件中的行复制到 char *array[]?

python - 列表列表中列表的组索引

haskell - 为什么 Rational 没有 printf 格式化程序?