Нахождение элемента в массиве, который не повторяется несколько трех Times?

после прочтения Этот интересный вопрос Мне напомнили о сложном вопросе интервью-интервью, который у меня было когда-то, что я никогда не был удовлетворительно ответил:

Вам дают массив N 32-битных unsigned целых чисел, где каждый элемент (кроме одного) повторяется несколько из трех раз. В O (n) время и использование как можно меньше вспомогательного пространства, найдите элемент массива, который не отображается несколько трех раз.

В качестве примера, учитывая этот массив:

1 1 2 2 2 2 3 3 3 3 3 3

Мы бы выводили 1, при данном массиве

3 2 1 3 2 1 2 3 1 4 4 4 4

Мы бы выводили 4.

Это может быть легко решить в пространстве O (n) и O (n), используя хеш-таблицу, чтобы подсчитать частоты каждого элемента, хотя я настоятельно подозреваю, что, потому что Заявление о проблеме специфически упомянуло, что массив содержит 32-разрядные unsigned целые числа, которые есть гораздо лучшее решение (я предполагаю, что o (1) пространство).

У кого-нибудь есть идеи о том, как это решить?

15
задан Community 23 May 2017 в 10:28
поделиться