当前位置: 首页 > 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/news/326417.html

相关文章:

  • 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 一款教你绑绳结的手机应用
  • 高标准农田灌区信息化:为农业可持续发展注入新动力
  • 开源模型应用落地-qwen2.5-7b-instruct-LoRA微调-LLaMA-Factory-单机单卡-V100(十八)
  • 抽象工厂模式和工厂模式的区别
  • 使用 IntelliJ IDEA 连接到达梦数据库(DM)
  • 大厂面试真题- RPC通讯协议如何保证数据完整性
  • 谷歌网站收录查询,怎么查看网站在谷歌的收录情况
  • 1. AOSP源码导入到AndroidStudio
  • JWT 令牌生成报错
  • Linux(含麒麟操作系统)如何实现多显示器屏幕采集录制
  • 8.代码风格调试%结课竞赛