トピックへのリンク:https://leetcode-cn.com/problems/bitwise-and-of-numbers-range/
件名の説明:
[M、N]の範囲、0 <= M <= N <= 2147483647、所与の(Mを含む、nは包括的の両方)ビット単位でこの範囲内のすべての数を返します。
例:
例1:
输入: [5,7]
输出: 4
例2:
输入: [0,1]
输出: 0
アイデア:
1限りそのため0
、関係なく、どのように多くの1
です0
たとえば、次のから5
まで7
5:0 1 0 1
6:0 1 1 0
7:0 1 1 1
-----------
0 1 0 0
次のようにそのため、コードは次のとおりです。
class Solution:
def rangeBitwiseAnd(self, m: int, n: int) -> int:
i = 0
while m != n:
m >>= 1
n >>= 1
i += 1
return m << i