201. Bitwise AND of Numbers Range

来源:互联网 发布:软件破解授权 编辑:程序博客网 时间:2024/05/22 13:05

Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all numbers in this range, inclusive.

For example, given the range [5, 7], you should return 4.


[思路]

等价于 求 m 与 n 二进制编码中 同为1的前缀.

class Solution {public:    int rangeBitwiseAnd(int m, int n) {        int bit = 0;          while(m!=n) {              m>>=1;              n>>=1;              bit++;          }          return m<<bit;      }};


0 0