leetcode (力扣) 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

思路分析

这道题是求left到right之间每一个数与操作的结果。

测试用例还挺良心的,给了个1-2147483647。告诉你暴力过不了哈哈。

这里可以回想一下二进制与操作,两个数的''与''只要有0则为0。

而一个数不断加1变成另一个数的过程中,实际上每一位都有变成0的情况。

这里举个例子秒懂,

  • 比如4->5 对应二进制 101->110
  • 9->10 对应二进制 111->1000
  • 100->101 对应二进制 1100100 ->1100101

所以其实就是找两个数的最长公共前缀。

这样思路就简单了,两个数的二进制不断往右移动,当两者相等的时候,停止移动。

记t为移动的次数,t就是两个数的二进制不同的位数。此时再左移t位就可以啦。

完整代码

python 复制代码
class Solution:
    def rangeBitwiseAnd(self, left: int, right: int) -> int:
        res = 0

        while left<right:
            left = left>>1
            right = right>>1
            res +=1
        return left<<res
        
        ```
相关推荐
荆棘鸟智能5 分钟前
虫情测报灯图像识别算法实践:小目标检测、粘连计数与飞虱细粒度分类
算法·目标检测·分类
学电子她就能回来吗15 分钟前
LeetCode Hot 100|滑动窗口专题零基础学习笔记
笔记·学习·leetcode
天真小巫18 分钟前
2026.10.14总结
职场和发展
鸥梨菌Honevid20 分钟前
UVM 面试高频:uvm_test_top 与 uvm_config_db 路径机制全解析
数据库·面试·职场和发展
爱读书的小胖27 分钟前
LeetCode 27. 移除元素(C)解题分析
数据结构·算法
科技小E29 分钟前
敏感数据不敢上云训练?本地大模型推理服务器DLTM私有化部署,让训练全程留在企业内网
大数据·算法·自动化
小草cys1 小时前
用 GPT 直接生成可编辑 PPTX 的实操记录,artifact-tool是OpenAICodex环境专用
gpt·算法·pptx
爱读书的小胖1 小时前
Codewars: A Brave New Wordle(C)解题分析
c语言·数据结构·算法
Escalating_xu1 小时前
【数据结构】顺序表的应用:动态通讯录项目与双指针经典算法
c语言·数据结构·算法
其实防守也摸鱼1 小时前
CTF Web 6 题全解 Writeup
linux·sql·学习·算法·安全·ctf·xss