201. Bitwise AND of Numbers Range

来源:互联网 发布:程序员的工资组成 编辑:程序博客网 时间:2024/05/26 09:53

位运算。

直接平移m和n,每次向右移一位,直到m和n相等,记录下所有平移的次数i,然后再把m左移i位即为最终结果。等价于 求 m 与 n 二进制编码中 同为1的前缀

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


原创粉丝点击