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