Задачка про парні числа

Задачка про парні числаА ось задачка на вихідні! Вона погано підходить, щоб просити на співбесіді, бо надто вже на інсайт (будь ласка, ніколи не задавайте такі на співбесідах), і занадто проста для змагань. Якраз щоб доставити той самий satisfying click в мозку, за який ми любимо програмування. Отже:

Є великий масив з N 32-бітових чисел. Кожне число зустрічається два рази, а два числа-по одному. Знайти ці два числа за один прохід по масиву з константними витратами пам’яті (тобто не залежать від розміру масиву).

Не забувайте використовувати тег для рішень в коментарях!

тривіальне рішення: заводимо нульовою бітовий масив на 4Г бітів (електронний пам’ять!). якщо ми бачимо якесь число, то робимо на його позиції виключає або з одиницею. в кінці тільки два біти дорівнюють одному — це і є ті числа що ми шукали. в один прохід по додатковому масиву можна їх знайти. Не троль 🙂 Давайте, щоб не було різночитань — пам’яті у вас чотири кілобайта.

Рішення буде додано, наприклад, у понеділок.

Disclaimer: пост написаний на основі неабияк відредагованих лог чату closedcircles.com, звідси і стиль викладу, та наявність уточнюючих питань.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

*