Leetcode 201. Bitwise AND of Numbers Range

版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://blog.csdn.net/Quincuntial/article/details/82428904

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

1. Description

Bitwise AND of Numbers Range

2. Solution

  • Version 1
class Solution {
public:
    int rangeBitwiseAnd(int m, int n) {
        int mask = INT_MAX;
        while((m & mask) != (n & mask)) {
            mask <<= 1;
        }
        return m & mask;
    }
};
  • Version 2
class Solution {
public:
    int rangeBitwiseAnd(int m, int n) {
        int count = 0;
        while(m != n) {
            m >>= 1;
            n >>= 1;
            count++;
        }
        return m << count;
    }
};
  • Version 3
class Solution {
public:
    int rangeBitwiseAnd(int m, int n) {
        while(m < n) {
            n &= n - 1;
        }
        return n;
    }
};

Reference

  1. https://leetcode.com/problems/bitwise-and-of-numbers-range/description/

猜你喜欢

转载自blog.csdn.net/Quincuntial/article/details/82428904
今日推荐