2018-08-13 22:50:51
问题描述:
问题求解:
首先如果m 和 n不相等,那么必然会有至少一对奇偶数,那么必然末尾是0。
之后需要将m 和 n将右移一位,直到m 和 n相等。
本质上,本题就是求m 和 n的最长preSubNum。
public int rangeBitwiseAnd(int m, int n) { if (m == 0) return 0; int moveFactor = 1; while (m != n) { m >>= 1; n >>= 1; moveFactor <<= 1; } return m * moveFactor; }