Bitwise AND of Numbers Range

来源:互联网 发布:php 空格占位符 编辑:程序博客网 时间:2024/06/13 02:33

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.

你可以列出一部分连续数的二进制,也许你会发现2^i次方在其中起得作用,也许你想直接从m &到 n,然而,这并没有什么卵用,所得的结果只能是Time Limited。

下面的方法,慢慢体会:

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



0 0
原创粉丝点击