У Джайдева Мисры и Дэвида Гриса есть документ под названием Поиск повторяющихся элементов ( ACM page ), который обобщает его на элемент, повторяющийся более чем в n / k раз (k = 2 - этопроблема большинства).
Конечно, это, вероятно, очень похоже на исходную проблему, и вы, вероятно, ищете «другие» алгоритмы.
Вот пример, который, возможно, отличается.
Дайте алгоритм, который будет определять, правильно ли сформирована строка скобок ('(' и ')').
Я считаю, что стандартное решение состоит в том, чтобы поддерживать счетчик.
Примечание:
Что касается ответов, утверждение которых не может быть постоянным пробелом и т. Д., Спросите их омодель расчета.Например, в модели WORD RAM вы предполагаете, что целые числа / индексы массива и т. Д. Равны O (1).
Многие люди неправильно смешивают и подбирают модели.Например, у них, к счастью, будет входной массив из n целых чисел, равный O (n), индекс массива, равный пробелу O (1), но счетчик, который они считают Omega (log n) и т. Д., Что является бессмысленным.Если они хотят учесть размер в битах, то сам ввод Omega (n log n) и т. Д.