leetcode 201. 数字范围按位与

题目链接:leetcode 201

1.题目

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

2.示例

1)示例 1:

输入:left = 5, right = 7

输出:4

2)示例 2:

输入:left = 0, right = 0

输出:0

3)示例 3:

输入:left = 1, right = 2147483647

输出:0

4)提示:

0 <= left <= right <= 2^31 - 1

3.分析

问题可以转化为找left和right的公共前缀

4.代码

cpp 复制代码
class Solution {
public:
    int rangeBitwiseAnd(int left, int right) {
        int res=1<<30,ans=0;
        for(int i=30;i>=0;i--){
            if((left&res)!=(right&res)) break;
            ans|=(left&res);res>>=1;
        }return ans;
    }
};
相关推荐
2301_811232983 分钟前
C++中的契约编程
开发语言·c++·算法
2401_829004024 分钟前
C++中的访问者模式
开发语言·c++·算法
青槿吖11 分钟前
第二篇:JDBC进阶骚操作:防注入、事务回滚、连接池优化,一篇封神
java·开发语言·jvm·算法·自动化
sin_hielo11 分钟前
leetcode 1984
数据结构·算法·leetcode
古城小栈28 分钟前
开发常用 宏
算法·rust
m0_7482486528 分钟前
C语言向C++过渡
c语言·c++·算法
qq_4232339041 分钟前
跨语言调用C++接口
开发语言·c++·算法
CoderCodingNo1 小时前
【GESP】C++五级练习题 luogu-B3628 机器猫斗恶龙
开发语言·c++·算法