【LeetCode] 201の数値範囲のビット単位のAND

トピックへのリンク: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

おすすめ

転載: www.cnblogs.com/powercai/p/11370280.html