Re: Задачка
От: Lexey Россия  
Дата: 01.10.01 07:18
Оценка:
Здравствуйте fearless, вы писали:

F>Здравствуйте, уважаемые. Хочу предложить вам поразмяться :-)


F>Есть массив длинны N. Известно, что больше половины элементов

F>этого массива равны друг другу. Требуется за один (!) проход по
F>массиву выяснить чему же они равны.

F>Ходят слухи, что если массив целочисленный, то существует математическое

F>решение задачи. Но есть решение и в общем виде.

Ну с целочисленным тут вроде все понятно. Создаешь массив счетчиков встречаемости конкретных чисел и запоминаешь текущий максимальный счетчик. Правда массив может получиться немерянного размера (2^32 для int, если нет никаких априорных ограничений на диапазон чисел). :)

Для произвольных элементов для счетчиков можно использовать хеш-таблицу. Добавляются накладные расходы на хеширование и на разрешение коллизий.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.