Лучший подход для получения числа нулей в двоичной строке - PullRequest
0 голосов
/ 06 мая 2018

У меня одна двоичная строка, и мне нужно вычислить количество нулей в этой строке

я знаю, что мы можем решить это за линейное время, но я хочу решение с o (k)

где k - количество нулей в строке.

N - длина строки 1 <= N <10 ^ 6 </p>.

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Учитывая строку из N независимых битов, вам придется просматривать каждый бит хотя бы один раз. Это дает временную сложность O (N). Невозможно сделать это асимптотически быстрее.

Алгоритмы, приведенные в упомянутых вопросах, предполагают, что вся битовая строка вписывается в слово и может обрабатываться в O (1). Это не выполняется, если строка может быть произвольно длинной.

0 голосов
/ 06 мая 2018

Вы можете использовать алгоритм Хэмминга , на самом деле вычислить расстояние Хэмминга строки, затем subtract из размера вашей двоичной строки (N)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...