【LeetCode】201. 数字范围按位与

1. 题目

2. 分析

这题挺难想的,我到现在还没想明白,为啥只用左区间和右区间就能找到目标值了,而不用挨个做与操作?

3. 代码

python 复制代码
class Solution:
    def rangeBitwiseAnd(self, left: int, right: int) -> int:
        left_bin = bin(left).zfill(32)
        right_bin = bin(right).zfill(32)
        cnt = 0
        while(left_bin != right_bin):
            left = left >> 1
            right = right >> 1
            left_bin = bin(left).zfill(32)
            right_bin = bin(right).zfill(32)
            cnt += 1
        return left << cnt

其实代码可以不用上面这样复杂,官方题解很简洁。不过我这个代码提供了一个Python的新颖的API(zfill函数)。这个函数是对字符串进行前导零补足。

相关推荐
X journey4 小时前
机器学习进阶(13):支持向量机SVM
算法·机器学习·支持向量机
洛水水4 小时前
【力扣100题】30.二叉树的直径
算法·leetcode·职场和发展
gihigo19985 小时前
Bezier曲线曲面生成算法
算法
平行侠6 小时前
024多精度大整数 - 突破硬件精度限制的任意精度运算
数据结构·算法
IronMurphy6 小时前
【算法四十五】139. 单词拆分
算法
洛水水7 小时前
【力扣100题】32.将有序数组转换为二叉搜索树
数据结构·算法·leetcode
如竟没有火炬8 小时前
用队列实现栈
开发语言·数据结构·python·算法·leetcode·深度优先
云栖梦泽在8 小时前
AI安全入门:AI模型泄露的风险与防护措施
人工智能·算法·动态规划
水木流年追梦9 小时前
大模型入门-应用篇3-Agent智能体
开发语言·python·算法·leetcode·正则表达式
洛水水9 小时前
【力扣100题】31.二叉树的层序遍历
算法·leetcode·职场和发展