Python | LeetCode
Фотография
нажмите — покажем
нажмите — покажем
Задача: 201. Bitwise AND of Numbers Range
Сложность: medium
Даны два целых числа left и right, которые представляют диапазон [left, right], верните побитовое И всех чисел в этом диапазоне включительно.
Пример:
Input: left = 5, right = 7
Output: 4
👨💻 Алгоритм:
1️⃣Сдвигать left и right вправо, пока они не станут равными.
2️⃣Подсчитать количество сдвигов.
3️⃣Сдвинуть left влево на количество сдвигов и вернуть результат.
😎 Решение:
class Solution:
def rangeBitwiseAnd(self, m: int, n: int) -> int:
shift = 0
while m < n:
m = m >> 1
n = n >> 1
shift += 1
return m << shift
Ставь 👍 и забирай 📚 Базу знаний
7 · 609 ·