201.数字范围按位与

2020-07-10
数字范围按位与
 
输入 [5,8] 返回5&6&7&8的值
 
题解:
思路1:位运算+滑动窗口
当 m 远> n的时候 例如[5, 99999999] 返回值肯定是0 只要左右端点的二进制数长度不一样 结果就是0 当长度一样的时候 m,n 右移 当m=n的时候 就找到了所以数字的公共前缀 再将右移的位数补0 即是结果
var rangeBitwiseAnd = function(m, n) {
  let zeros = 0;
  while(m < n) {
    m >>= 1;
    n >>= 1;
    zeros++;
  }
  return m << zeros;
};
原文地址:https://www.cnblogs.com/lanpang9661/p/13279770.html