求区间内的数字全部与之后的结果
其实可以观察到,只会留下从高到低,第一个不同位之前的
12 ---- 110011 ---- 101110 ---- 10109 ---- 10018 ---- 10007 ---- 01116 ---- 01105 ---- 0101
像这种一位都不会相同
因此代码可以直接删除最低位的1,直到小于等于为止
class Solution {
public:int rangeBitwiseAnd(int left, int right) {while(right > left){right &= right - 1;}return right;}
};