基于头部等级重新排序数组元素

时间:2012-10-07 12:01:14

标签: javascript algorithm

我正在研究算法来解决javascript中的以下问题。 在头部“1:2,3,4,6,5”中有“6”和“5”尾部,这些尾部也可用于更高等级的头部,即“2:5,6”,因此6和5应该是从下头移除,即“1:”。由于所有尾部值都应由头部唯一存在。

输入数组

in = ["1:2,3,4,6,5", "2:5,6", "3:7,8,9"] 

期望的输出

out = ["1:2,3,4", "2:5,6", "3:7,8,9"] 

迭代是我能想到的唯一方式。 解决这个问题的最佳方法是什么? 感谢。

1 个答案:

答案 0 :(得分:1)

首先按照他们的头脑排序。然后以相反的顺序浏览排序列表。访问列表时记录列表中的所有尾部元素。如果之前已经看过尾部元素,请将其从当前列表中删除。您可以使用哈希表记录是否访问过某个元素。