【发布时间】:2015-07-21 21:18:32
【问题描述】:
是否有人愿意提供一些替代解决方案来使用函数式编程和 Elixir 构造从列表 (X) 中删除重复值?
X = [1,26,3,40,5,6,6,7] # the 6 being the duplicate
我认为解决这个问题的常用解决方案是迭代列表 (X),然后添加到一个新列表 (Y) 中,其中键不存在。
谢谢
【问题讨论】:
-
这是元素区别问题,这是一个被广泛研究的问题。我们知道在某些配置下问题的下界。它可以通过排序 + 迭代在 O(nlogn) 中解决,或者通过使用哈希集在平均时间 + 空间上解决 O(n)。链接的问题讨论了这个问题。
-
@amit 正确的感谢 - 我相信我正在寻找一种使用 Elixir 语言构造和函数式编程解决问题的有效方法。
-
@amit,我不认为这是重复的。他要求使用特定语言的答案,而您建议他重复的问题是关于算法复杂性的问题。不完全一样。
-
回答您的问题@DaneBalia,Elixir 中有一个内置函数可以满足您的需求。 elixir-lang.org/docs/v1.0/elixir/Enum.html#uniq/2 Enum.uniq 将从集合中删除重复项。
-
@OnorioCatenacci 谢谢你——正是我想要的,不需要代码;)
标签: elixir