Я получил эту проблему из интервью с Microsoft.
Учитывая массив случайных целых чисел, написать алгоритм в C, который удаляет дублировать номера и возвращать уникальные номера в оригинале массив.
Например, вход: {4, 8, 4, 1, 1, 2, 9}
Выход: {4, 8, 1, 2, 9, ?, ?}
Одно из предостережений заключается в том, что ожидаемый алгоритм не должен требовать, чтобы массив сначала сортировался. И когда элемент был удален, следующие элементы также должны быть сдвинуты вперед. Во всяком случае, значение элементов в хвосте массива, где элементы были сдвинуты вперед, незначительно.
Обновление: Результат должен быть возвращен в исходном массиве, а вспомогательная структура данных (например, hashtable) не должна использоваться. Однако, я думаю, сохранение заказа не требуется.
Update2: Для тех, кто задается вопросом, почему эти непрактичные ограничения, это был вопрос интервью, и все эти ограничения обсуждаются во время процесса мышления, чтобы увидеть, как я могу придумать разные идеи.