这个问题来自于微软的面试。
给定一个随机整数数组, 请用 C 语言编写一个算法,去除重复的数字并返回原始数组中的唯一数字。
例如,输入:{4, 8, 4, 1, 1, 2, 9}
输出:{4, 8, 1, 2, 9, ?, ?}
其中一个注意事项是,期望的算法不应该要求先对数组进行排序。当一个元素被移除后,后续的元素必须向前移位。无论如何,被移位的末尾元素的值都是可以忽略的。
更新:结果必须返回到原始数组中,不能使用帮助数据结构(例如哈希表)。然而,我猜想保持元素顺序并不是必需的。
更新2:对于那些想知道为什么有这些不切实际的限制的人,这是一个面试题,所有这些限制都是在思考过程中讨论的,以了解我如何提出不同的想法。