LeetCode Bitwise AND of Numbers Range

来源:互联网 发布:tl-wn725n linux 编辑:程序博客网 时间:2024/06/08 16:05

思路:

将问题转化为:求m和n的二进制表示的前缀都为1的个数。

举例:m=5,n=7
5:101
6:110
7:111
求得:bit = 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