码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode_Bitwise AND of Numbers Range

时间:2015-05-15 09:03:20      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:bitwise and   numbers range   bit operation   

描述:

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.

思路:

由于相邻的两个数最低位肯定有0有1,所以直接and肯定为0,所以可以通过直接and来和向右移位获得一个区间内的相同的位数,最后再通过向左移位获得一个区间所有数字相与的结果。

代码:

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


leetcode_Bitwise AND of Numbers Range

标签:bitwise and   numbers range   bit operation   

原文地址:http://blog.csdn.net/mnmlist/article/details/45739997

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!