Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: задача
Форумы портала PHP.SU » » Вопросы новичков » задача

Страниц (1): [1]
 

1. Zuldek - 12 Января, 2012 - 20:30:13 - перейти к сообщению
массив произвольного размера с числами от 1 до 1,000,000.
все числа уникальные,
только одно повторяется дважды
найти это число с минимальным использованием процессорного времени.

Я правильно понимаю что решение сводится к сортировке массива по возрастанию значения и простому сравниванию каждого значения с последующим в цикле пока не будет найдено равенство или существует готовая функция для подобной задачи?

Знаю только встроенную функцию для удаления повторяющихся значений, но она возвращает новый массив без указания ключей удаленных значений.
2. EuGen - 12 Января, 2012 - 20:36:25 - перейти к сообщению
http://php.su/functions/?array_count_values

Вот вариант. По поводу быстродействия - нужно подумать, сейчас не скажу. Нет сэндбокса под рукой
3. Zuldek - 12 Января, 2012 - 20:43:38 - перейти к сообщению
EuGen пишет:
http://php.su/functions/?array_count_values

Вот вариант. По поводу быстродействия - нужно подумать, сейчас не скажу. Нет сэндбокса под рукой


Ничего, потестю простым php-таймером оба варианта. Спасибо.

 

Powered by ExBB FM 1.0 RC1