【发布时间】:2021-01-29 21:34:39
【问题描述】:
我正在查看数据结构。课本里有一段说
"直接的方法是先排序,然后将其唯一化,就像 排序的向量。这两个步骤都可以在 O(nlogn) 内完成。”
然后
"但是有一个副作用:项目的相对顺序 无法保存。”
终于
“实际上我们可以在不增加 时间复杂度。请自行实施。”
找不到任何线索。在复习课本时,我现在没有使用 STL。我所能想象的就是在合并排序期间尝试改变一些东西。
谁有更明亮的视野?
示例案例
输入:5、3、5、8、5、8、8、8、13
输出:5、3、8、13
【问题讨论】:
-
您可以在索引
[0 1 2 ..i.. n-1]上创建一个数组,并根据A[i]的值对其进行排序。然后,您可以使用已排序的索引数组来检测重复项,而无需修改原始A[]数组的顺序
标签: c++ algorithm data-structures duplicates time-complexity