思路比较简单
要找按位与的结果,需要找到这几个数字的公共前缀
需要不断的右移,知道m==n,同时用一个变量来记录一共后移了几位
然后m也左移几位
class Solution {
public int rangeBitwiseAnd(int m, int n) {
int res=0;
while(m<n){
m=m>>1;
n=n>>1;
res=res+1;
}
return m<<res;
}
}
网友评论