JIAKAOBO

LeetCode

venmo
wechat

感谢赞助!

  • ㊗️
  • 大家
  • offer
  • 多多!

Problem

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

Example 1:

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

Example 2:

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

Example 3:

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

Constraints:

  • $0 <= left <= right <= 2^{31} - 1$

Code

class Solution {
    public int rangeBitwiseAnd(int left, int right) {
        int offset = 0;

        while(left != right){
            left >>= 1;
            right >>= 1;
            offset++;
        }

        return left << offset;
    }
}