【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函数)。这个函数是对字符串进行前导零补足。

相关推荐
波波0076 分钟前
每日一题:.NET 中什么是 LOH(大对象堆)?为什么频繁使用大数组或大字符串可能导致性能问题?如何优化?
java·jvm·算法
独自破碎E6 分钟前
动态规划-正则表达式匹配
算法·正则表达式·动态规划
Gofarlic_OMS6 分钟前
Fluent许可证使用合规性报告自动化生成系统
java·大数据·运维·人工智能·算法·matlab·自动化
漫随流水7 分钟前
leetcode回溯算法(131.分割回文串)
数据结构·算法·leetcode·回溯算法
我家大宝最可爱11 分钟前
强化学习基础-重要性采样
算法·机器学习·概率论
Remember_99314 分钟前
文件系统与IO操作:深入解析与Java实践
java·开发语言·数据结构·ide·python·算法
大江东去浪淘尽千古风流人物21 分钟前
【DSP】DSP核心组件 SM算法部署
算法
努力学习的小廉23 分钟前
我爱学算法之—— 递归
算法·深度优先
一个不知名程序员www8 小时前
算法学习入门 --- 哈希表和unordered_map、unordered_set(C++)
c++·算法
Sarvartha9 小时前
C++ STL 栈的便捷使用
c++·算法