Вы можете использовать алгоритм большинства элементов в качестве основы для решения O (n) с пробелом O (1).
Вам нужно место для одного сохраненного элемента.Выберите первый элемент и сохраните его, если следующий элемент совпадает с сохраненным, вы закончили.Если нет, перезапустите алгоритм со следующего шага.Если вы не найдете элемент после его окончания, это означает, что элемент упорядочен в парах, таких как (a, b), (a, c), (a, d) или (b, a), (a, c), (a, d), (e, a) .. Сравните первые четыре элемента, и вы нашли дубликат.
Поскольку элементы могут быть в произвольном порядке, какие из первых n / 2 элементов выпроверьте, возможно ли, что они все разные.Таким образом, нет решения, которое лучше, чем O (n).