У меня был этот вопрос на вчерашнем анализе алгоритмов, и я не могу понять ответ. Это сводит меня с ума, потому что это стоило около 40 очков. Я полагаю, что большая часть класса не решила его правильно, потому что за последние 24 часа у меня не было решения.
Для произвольной двоичной строки длины n найдите три равномерно расположенных внутри строки, если они существуют. Напишите алгоритм, который решает это в O (n * log (n)) времени.
Таким образом, такие строки имеют три "равномерно распределенных": 11100000, 0100100100
edit: Это случайное число, поэтому оно должно работать для любого числа. Я привел примеры, иллюстрирующие свойство "равномерно распределенного". Таким образом, 1001011 является действительным числом. С 1, 4 и 7 являются равномерными.