Blind 75 — Вопросы по программированию и техническому интервью — серия объяснений
Проблема:
Объяснение:
Это, конечно, бинарные вопросы, поэтому понимание побитовых операций и их значения имеет первостепенное значение. Это отличные простые вопросы, чтобы познакомиться с бинарным литкодом. Интуиция здесь такова, что вы хотите отслеживать единичные биты, а затем выполнять побитовые операции с этим числом, пока оно не равно 0. Внутри этого цикла мы сначала можем проверить, равен ли первый бит 0 или 1. Есть два способа сделайте это, если (n & 1) == 1 или если n % 2 == 1. Если это утверждение верно, то бит равен единице, и мы увеличиваем счетчик. Поскольку мы проверяем только первый бит в числе, мы сдвигаем биты вправо на 1.
Решение — O(n):
class Solution: def hammingWeight(self, n: int) -> int: count = 0 while n != 0: if (n & 1) == 1: count += 1 n = n >> 1 return count
Информация:
Веб-сайт: nkwade.dev
LinkedIn: linkedin.com/in/nkwade
GitHub: github.com/nkwade
Электронная почта: [email protected]