У меня есть один генератор случайных чисел, который генерирует число между 1 to k
. Также у меня есть массив из int
типа (например, int[]
), размер которого составляет N
, где k
меньше, чем N.Алгоритм сохранения элементов в порядке поддержания массива
Теперь проблема в том, что мне нужно сохранить уникальные сгенерированные числа в массив (отклонение сгенерированного дублированного числа) и поддерживать порядок сгенерированных чисел, не используя лишнее пространство и в сложности O(N)
. i.e в том же массиве мне также нужно поддерживать порядок сгенерированного числа. Так что я могу получить их в сгенерированном порядке. Никакой битмап или дополнительный массив и т. Д. Не предполагается использовать.
Его не домашнее задание. Это один из вопросов интервью. Я не должен использовать лишнее пространство. Он попросил меня использовать тот факт, что k
меньше, чем N
, и вам нужно внедрить поведение хэшмапа в том же массиве. Я предложил множество алгоритмов, используя дополнительные пробелы, но он отклонил также использование сортировки, но я не смог поддерживать сгенерированный порядок.
Если бы я был вами, я бы 1) сохранил свои элементы в отсортированном списке и 2) позвонил вArray(), когда закончите. http://stackoverflow.com/questions/4031572/sorted-array-list-in-java. PS: Это звучит как домашнее задание? – paulsm4
Можете ли вы показать нам, какой у вас код до сих пор? Какой подход (ы) вы рассматриваете? –
"* без использования дополнительного пространства *" кажется невозможной задачей. Даже для замены требуется 'int temp', который занимает 4 байта. –