Рассмотрим вспомогательный массив, сформированный путем взятия каждого другого числа и присвоения 0, если оно равно следующему, и 1 в противном случае.
[1,1,5,5,2,2,4,4,7,12,12,8,8]
[0, 0, 0, 0, 1, 1 ]
Этот вспомогательный массив четко отсортирован, и первый можно найти с помощью бинарного поиска.
Конечно, массив не должен быть создан явно, так как это займет O (N).