zoukankan      html  css  js  c++  java
  • Leetcode201. Bitwise AND of Numbers Range数字范围按位与

    给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。

    示例 1: 

    输入: [5,7] 输出: 4

    示例 2:

    输入: [0,1] 输出: 0

    因为i和i + 1只相差1,所以两个数二进制的最后一位一定不一样,最后一位按位与结果一定是0。所以n,m按位与的最后一位肯定是0,我们只需要计算除去最后一位的二进制按位与的结果。即除以2后按位与的结果。

    class Solution {
    public:
        int rangeBitwiseAnd(int m, int n) 
        {
            if(m == n)
                return m;
            int cnt = 0;
            while(m != n)
            {
                m >>= 1;
                n >>= 1;
                cnt++;
            }
            m <<= cnt;
            return m;
        }
    };
  • 相关阅读:
    spring
    ajax
    jquary
    Java web 部分
    长跑马拉松
    面试的标准
    数据预处理——剔除异常值,平滑,归一化
    概率分布
    养生
    平滑的作用
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10433792.html
Copyright © 2011-2022 走看看