算法1 找到m和n的公共前缀
C++ 代码
class Solution {
public:
int rangeBitwiseAnd(int m, int n) {
int i=0;
while(m!=n)
{
m>>=1;
n>>=1;
i++;
}
return m<<i;
}
};
算法2 Brian Kernighan 算法
C++ 代码
class Solution {
public:
int rangeBitwiseAnd(int m, int n) {
while(m<n)
{
n=n&(n-1);
}
return n;
}
};