当前位置: 首页 > article >正文

Leetcode面试经典150题-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

提示:

  • 0 <= left <= right <= 231 - 1

这数字范围,挨个与必死无疑啊,其他的就不多说了,上代码,看不懂的请留言或者私信,收到第一时间解答

class Solution {
    public int rangeBitwiseAnd(int left, int right) {
        /**按照题目给的数据量,如果挨个按位与理论上是过不去的,试试 */
        /**理论上,left和right是连续的,也就是left可能有1的第一位往后,所有位肯定都有0和1,也就是他们都是0
        所有理论上如果right > left *2,肯定是0 */
        //if(right >= left * 2) {
            //return 0;
       // }
        if(left == right) {
            return left;
        }
        int countBit = 0;
        int result = left;
        while(left < right) {
            left = left >> 1;
            right = right >> 1;
            //System.out.println("left="+left+",right="+right);
            countBit ++;
            result = left & right;
        }
        //System.out.println(countBit);
        return result << countBit;
    }
}


http://www.kler.cn/a/326417.html

相关文章:

  • Ubuntu 的 ROS 操作系统 turtlebot3 导航仿真
  • C++网络编程之SSL/TLS加密通信
  • 【Java多线程】单例模式(饿汉模式和懒汉模式)
  • 大模型论文精华-AI在医疗诊断、语言学习与情绪识别等领域的最新应用进展
  • 数据集的重要性:如何构建AIGC训练集
  • 大数据-226 离线数仓 - Flume 优化配置 自定义拦截器 拦截原理 了 拦截器实现 Java
  • oracle 分表代码示例
  • FiBiNET模型实现推荐算法
  • qiankun自定义数据通信方案
  • Json files to Excel - Python
  • 【QT】QWidget 重要属性
  • Golang | Leetcode Golang题解之第435题无重叠区间
  • Qt开发第一讲
  • ip池子的大小与什么相关?
  • echarts 导出pdf空白原因
  • Spring系统学习(五)——Spring数据库编程
  • YOLOv8改进 | 主干改进篇,华为的轻量化架构GhostNetV2改进特征提取网络
  • 前端项目依赖包中的依赖包漏洞解决方案
  • springboot实战学习(10)(ThreadLoacl优化获取用户详细信息接口)(重写拦截器afterCompletion()方法)
  • 解决VRM格式模型在Unity中运行出现头发乱飞等问题
  • Java | Leetcode Java题解之第443题压缩字符串
  • ECCV 2024 | 融合跨模态先验与扩散模型,快手处理大模型让视频画面更清晰!
  • 数据中心解决方案
  • 手写体识别毕设——人工智能和深度学习技术的快速发展
  • 前端安装 lerna
  • Knots_3D 9.3.0 一款教你绑绳结的手机应用