相关标签
一、题目要求
二、题解和代码实现
1.题解
2.代码实现
代码如下(示例):
class Solution {
public int rangeBitwiseAnd(int left, int right) {
int res = 0;//右移的次数
while (left < right){//当两个端点相同时,找到二进制字符串的公共前缀
left = left>>1;//右移一位
right = right>>1;//右移一位
res++;//次数+1
}
return left<<res;//最后再把两个端点其中一个 左移 右移动的次数,求得按位与相同的部分
}
}
class Solution {
public int rangeBitwiseAnd(int left, int right) {
int res = left;
for (int i = left; i <= right; i++) {
if (i == left){
continue;
}
if (i <0){
break;
}
res = res&i;
if (res ==0){
break;
}
}
return (int) res;
}
}