Java教程

201. 数字范围按位与

本文主要是介绍201. 数字范围按位与,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

难度中等

给你两个整数 left 和 right ,表示区间 [left, right] ,返回此区间内所有数字 按位与 的结果(包含 left 、right 端点)。

 

示例 1:

输入:left = 5, right = 7
输出:4

示例 2:

输入:left = 0, right = 0
输出:0

示例 3:

输入:left = 1, right = 2147483647
输出:0

 

 

暴力:

class Solution {
public:
    int rangeBitwiseAnd(int left, int right) {
       int res = left;
       for(int i = left+1; i <= right;i++) {
           res = res & i;
       }
       return res;
    }
};

 

 

 

 

class Solution {
public:
    int rangeBitwiseAnd(int left, int right) {
       int len = 0;
       while(left < right) {
           left = left >> 1;
           right = right >> 1;
           len++;
       }
       return left <<len;

    }
};

 

这篇关于201. 数字范围按位与的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!