Сложность: medium
Даны два целых числа left и right, которые представляют диапазон [left, right], верните побитовое И всех чисел в этом диапазоне включительно.
Пример:
Input: left = 5, right = 7
Output: 4
👨💻 Алгоритм:
1⃣Сдвигать left и right вправо, пока они не станут равными.
2⃣Подсчитать количество сдвигов.
3⃣Сдвинуть left влево на количество сдвигов и вернуть результат.
😎 Решение:
class Solution {
public int rangeBitwiseAnd(int m, int n) {
int shift = 0;
while (m < n) {
m >>= 1;
n >>= 1;
++shift;
}
return m << shift;
}
}Ставь 👍 и забирай 📚 Базу знаний
