1.简述:
给你两个整数 left 和 right ,表示区间 [left, right] ,返回此范围内的所有数字 按位与 结果(包括 left 、right 端点)。
示例 1:
输入:left = 5, right = 7
输出:4
示例 2:
输入:left = 0, right = 0
输出:0
示例 3:
输入:left = 1, right = 2147483647
输出:0
2.实现代码:
class Solution { public int rangeBitwiseAnd(int m, int n) { int shift = 0; // 找到公共前缀 while (m < n) { m >>= 1; n >>= 1; ++shift; } return m << shift; }}