区间数字的按位与 Bitwise AND of Numbers Range
Posted timhy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区间数字的按位与 Bitwise AND of Numbers Range相关的知识,希望对你有一定的参考价值。
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; }
以上是关于区间数字的按位与 Bitwise AND of Numbers Range的主要内容,如果未能解决你的问题,请参考以下文章
子序列的按位或 Bitwise ORs of Subarrays
Leetcode练习(Python):位运算类:第201题:数字范围按位与:给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按