0201 - Bitwise AND of Numbers Range

0201 - Bitwise AND of Numbers Range

Given two integers left and right that represent the range [left, right], return the bitwise AND of all numbers in this range, inclusive.

Examples

Input: left = 5, right = 7 Output: 4

Input: left = 0, right = 0 Output: 0

Input: left = 1, right = 2147483647 Output: 0

Constraints

  • 0 <= left <= right <= 231 - 1

Java Solution

class Solution {
  public int rangeBitwiseAnd(int m, int n) {
    while (m < n) {
      // turn off rightmost 1-bit
      n = n & (n - 1);
    }
    return m & n;
  }
}

Last updated