题意:给定两个数m,n,求区间[M,N]上所有数的AND的结果。
分析:由于区间[m,n]是连续的,由二进制数的特点,求该区间上所有数的AND结果相当于求m和n的都为1的共同前缀。
代码:
class Solution {
public:
int rangeBitwiseAnd(int m, int n) {
int count=0;
while(m!=n){
m>>=1;
n>>=1;
count++;
}
return m<<count;
}
};
本文介绍了一种求解区间[m,n]内所有整数按位AND运算结果的方法。通过找到m和n之间的最长公共二进制前缀来解决此问题。提供了一个简洁高效的C++实现。
1521

被折叠的 条评论
为什么被折叠?



