У вас есть массив из N чисел, где N не более 32 000. Массив может содержать дубликаты записей, и вы не знаете, что такое N. Если в памяти доступно всего 4 килобайта памяти, как распечатать все дублирующиеся элементы в массиве?
Примеры:
Input : arr[] = {1, 5, 1, 10, 12, 10} Output : 1 10 1 and 10 appear more than once in given array. Input : arr[] = {50, 40, 50} Output : 50
Спросил в: Amazon
У нас есть 4 килобайта памяти, что означает, что мы можем адресовать до 8 * 4 * 2 10 бит. Обратите внимание, что 32 * 2 10 битов больше, чем 32000. Мы можем создать бит с 32000 битами, где каждый бит представляет одно целое число.
Примечание: если вам нужно создать бит с более чем 32000 битами, вы можете легко создать больше и более 32000;
Используя этот битовый вектор, мы можем затем выполнить итерацию по массиву, помечая каждый элемент v, устанавливая бит v в 1. Когда мы сталкиваемся с дублирующим элементом, мы печатаем его.
Ниже приведена реализация идеи.
|
Джава
|
python3
|
C #
|
Выход:
1 10
Эта статья предоставлена г-ном Сомешем Авастхи . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.
Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.
Рекомендуемые посты:
- Найти дубликаты в массиве констант с элементами от 0 до N-1 в пространстве O (1)
- Найти фиксированную точку в массиве с разрешенными дубликатами
- Найти дубликаты в данном массиве, когда элементы не ограничены диапазоном
- Найти равную (или среднюю) точку в отсортированном массиве с дубликатами
- Найти фиксированную точку (значение, равное индексу) в данном массиве | Дубликаты разрешены
- Найти исходный массив из зашифрованного массива (массив сумм других элементов)
- Найти элемент в массиве так, чтобы сумма левого массива была равна сумме правого массива
- Удалить дубликаты из отсортированного массива
- Дублирует массив в O (n) и использует O (1) лишний пробел | Set-2
- Дублирует в массиве за O (n) время и использует O (1) дополнительное пространство | Set-3
- Удалить дубликаты из массива небольших простых чисел
- Проверьте, содержит ли массив непрерывные целые числа с разрешенными дубликатами
- Удалить дубликаты из несортированного массива, используя структуру данных Map
- Удалите дубликаты из несортированного массива, используя Задать структуру данных
- Проверьте, содержит ли массив непрерывные целые числа с разрешенными дубликатами
0.00 (0%) 0 votes