难度中等
给你两个整数 left 和 right ,表示区间 [left, right] ,返回此区间内所有数字 按位与 的结果(包含 left 、right 端点)。
示例 1:
输入:left = 5, right = 7 输出:4
示例 2:
输入:left = 0, right = 0 输出:0
示例 3:
输入:left = 1, right = 2147483647 输出:0
暴力:
class Solution {
public:
int rangeBitwiseAnd(int left, int right) {
int res = left;
for(int i = left+1; i <= right;i++) {
res = res & i;
}
return res;
}
};

class Solution {
public:
int rangeBitwiseAnd(int left, int right) {
int len = 0;
while(left < right) {
left = left >> 1;
right = right >> 1;
len++;
}
return left <<len;
}
};
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/283197.html