【发布时间】:2016-08-22 16:40:16
【问题描述】:
我在最近的采访中遇到了这个问题。
给定一个数组,我需要对数组进行排序,所有重复的元素都应该在最后。
示例: 输入:{7,4,2,3,3,5,3,11,9,2}
由于 2 & 3 是重复的元素,它们应该出现在 Array 的末尾。
输出:{4,5,7,9,11,2,2,3,3,3}
我可以随意使用任何其他数据结构。没有限制。
【问题讨论】:
-
您需要简单的解决方案还是超级高效的解决方案?如果您需要效率,还请提供输入限制(数字数量和大小)。
-
@Blaž Zupančič。没有约束。我在排序和散列的帮助下给出了解决方案。但他并不满足。他需要一个具有排序和最少操作的解决方案。
-
你确定输出不应该是 {2,3,4,5,7,9,11,2,3,3} 吗?
-
@m69。不。如果元素重复,所有它的出现都应该在最后。
-
所以你不需要排序,而是你需要安排事情,使单个项目首先出现在列表中,然后是重复的项目。你的输出可以是
{7,4,5,11,9,3,3,2,2}吗?也就是说,只要单个在左边,重复在右边,项目的顺序是否重要?
标签: algorithm sorting data-structures