201. Bitwise AND of Numbers Range | Java最短代码实现

原题链接:201. Bitwise AND of Numbers Range

【思路1】

本题考查位操作。发现对于任意两个数,两者的在某一位上不相等,那么相与后该位就位0。那么对于两者及之间的数相与,只要保证它们的共同高位相同,不同的低位为0即可,具体实现:

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

8266 / 8266 test cases passed. Runtime: 9 ms  Your runtime beats 19.89% of javasubmissions.

欢迎优化!

你可能感兴趣的:(位运算)