Skip to content

Latest commit

 

History

History
34 lines (30 loc) · 596 Bytes

201_bitwise_and_of_numbers_range.md

File metadata and controls

34 lines (30 loc) · 596 Bytes

201 - Bitwise AND of Numbers Range

leetcode link

Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all numbers in this range, inclusive.

Example 1:

Input: [5,7]
Output: 4

Example 2:

Input: [0,1]
Output: 0

Solution

// 23/04/2020
int rangeBitwiseAnd(int m, int n) {
    int mask = 1 << 30;
    int res = 0;
    while(mask && ((m&mask) == (n&mask))){
        res |= (n&mask?mask:0);
        mask = mask >> 1;
    }
    return res;
}