javascript - 根据头的等级重新排序数组元素

标签 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"] 

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

最佳答案

首先将列表按头部排序。然后以相反的顺序遍历排序列表。访问列表时,记录列表中出现的所有尾部元素。如果之前已经看到尾元素,则将其从当前列表中删除。您可以使用哈希表记录元素是否被访问。

关于javascript - 根据头的等级重新排序数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12768629/

相关文章:

algorithm - 将线拟合到网格矩阵中 [竞赛,而非硬件]

javascript 二维数组错误

javascript - 使用 moment.js 将 date() 设置为用户时区的午夜

javascript - 关闭 Bootstrap 模式 onclick

javascript - promise 错过明白

javascript - 将对象数组转换为数组中对象属性的对象

生成均匀间隔网格的算法

algorithm - 鸡蛋掉落拼图 - 需要建议

algorithm - 如何通过 union-find 将数据元素存储在组/簇中

javascript - bootstrap popover 内容设置