0
点赞
收藏
分享

微信扫一扫

201. Bitwise AND of Numbers Range

大柚子top 2022-08-03 阅读 61


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

For example, given the range [5, 7], you should return 4.

思路:
等价于求m与n二进制编码中同为1的前缀。

class Solution {
public int rangeBitwiseAnd(int m, int n) {
int bit = 0;
while(m != n) {
m >>= 1;
n >>= 1;
bit++;
}
return m<<bit;
}
}

class Solution {
public int rangeBitwiseAnd(int m, int n) {
int ans = n;
while (ans > m) {
ans = ans & (ans - 1);
}

return ans;
}
}


举报

相关推荐

0 条评论