пытается решить этот популярный интервью вопрос - http://www.careercup.com/question?id=3406682просмотра таблицы для подсчета количества установленных битов в Integer
Есть 2 подхода к этому, что я был в состоянии понять -
Brian Кернигана algo - Bits counting algorithm (Brian Kernighan) in an integer time complexity
Таблица поиска.
Я предполагаю, что, когда люди говорят, что использовать таблицу поиска, они имеют в виду HashMap с Integer в качестве ключа, и подсчет количества установленных битов в качестве значения.
Как построить такую таблицу поиска? Используем ли мы Brian's algo для подсчета количества бит в первый раз, когда мы сталкиваемся с целым числом, помещаем его в хэш-таблицу, а в следующий раз, когда мы сталкиваемся с этим целым, извлекаем значение из hashtable?
PS: Я знаю, что аппаратное и программное обеспечение api доступно для выполнения popcount (Integer.bitCount()), но в контексте этого вопроса интервью нам не разрешено использовать эти методы.
Благодарим за разъяснение этого. Можете ли вы объяснить, как можно было бы в первую очередь определить определение «число бит-бит» для указанных целых чисел? Причина, по которой я спрашиваю об этом, заключается в том, что метод, используемый для определения popcount для таблицы поиска, добавляет к сложности времени всей системы. –
@QuestMonger: Это зависит от того, как вы понимаете вопрос интервью. Но если вы не считаете размер программы частью сложности проблемы, вы просто отправляете предварительно вычисленную таблицу с помощью своей программы. Но в этом весь смысл такие вопросы: можете ли вы обсудить эти моменты? Я действительно вздыхаю на таких сайтах, как тот, который вы цитируете, потому что они считают, что Google рассматривает интервью, например, ваш город относится к экзаменационным вопросам водительских прав: это не так. Возможно, существует несколько приемлемых ответов и интервью - это выяснить, насколько вы понимаете (а не знать наизусть). –
Очень верно. К сожалению, сейчас ситуация с интервью намного хуже, при этом автоматические опросы по скринингу и отсутствие участия человека в конво (hackerrank, codility и т. Д.). Немного об отправке справочных таблиц очень интересно. Я работал в предположении, что мне нужно было все с нуля. Я запомню это. Благодаря! –