Решение Кайла, очевидно, не было проблемой, поскольку набор данных не соответствовал правилам. Если бы все числа находились в парах, алгоритм дал бы результат нуля, то же самое значение, как если бы ноль был единственным значением с единственным случаем.
Если бы было несколько значений одиночного охвата или тройки, результат также был бы неработоспособным.
Тестирование набора данных вполне может привести к более дорогостоящему алгоритму либо в памяти, либо во времени.
Решение Csmba показывает некоторые данные об отсутствии (не более одного значения вхождения), но не другие (квадранты). Что касается его решения, то в зависимости от реализации HT, память и/или время больше, чем O (n).
Если мы не можем быть уверены в правильности введенного набора, сортировка и подсчет или использование событий подсчета хэш-таблиц с самим целым, являющимся хэш-ключом, были бы осуществимы.
Я не вижу обслуживаемый ответ сейчас, интересно, как это у непринятого. Кстати, я бы отметил принятый ответ на основе ответов, доступных в то время. Кроме того, принятый не означает Best :) – Vaibhav 2008-09-06 08:42:16
. Вы тоже не так хороши: он использует память O (n). – user9282 2008-09-25 15:19:39
взгляд на первой линии, выделены жирным шрифтом: Я явно сказать, что это \t O (N) время, O (N) памяти так что вы не критиковать мое предложение за что я не указывал уже. – csmba 2008-09-25 21:24:04