Решение Kyle, очевидно, не поймало бы ситуации, был набор данных, не следует правилам. Если бы все числа были в парах, то алгоритм дал бы результат нуля, то же самое значение, как будто нуль был бы единственным значением с единственным происшествием.
, Если бы было несколько единственных значений происшествия или утраиваются, результатом был бы errouness также.
Тестирование набора данных могло бы хорошо закончиться с более дорогостоящим алгоритмом, или в памяти или время.
решение Csmba действительно показывает некоторые errouness данные (не или более тогда одно единственное значение происшествия), но не другой (quadrouples). Относительно его решения, в зависимости от реализации HT, любой памяти и/или время больше тогда O (n).
, Если мы не можем быть уверены в правильности входного набора, сортируя и рассчитывая или с помощью хеш-таблицы, считая происшествия с самим целым числом, являющимся ключом хеша, оба было бы выполнимо.
Я не знаю идеального и простого решения.
Можно было бы воссоздать Dom , используя потокобезопасные объекты.
В этом случае предпочтительно, чтобы они были неизменяемыми , поскольку вы предназначены только для чтения. Неизменяемость также открывает возможности для дальнейших улучшений (например, совместное использование экземпляров, что приведет к меньшему объему памяти).
Я хотел бы предложить библиотеку, которая делает это, поскольку это изрядное количество кода ...