LeetCode 面试经典150题 201.数字范围按位与

题目 :给你两个整数 left 和 right ,表示区间 [left, right] ,返回此区间内所有数字 按位与 的结果(包含 left 、right 端点)。

提示:0 <= left <= right <= 2^31 - 1

思路:

位与的特性 :只要参与位与的元素有一个为 0,那么位与结果就为 0。换句话说,如果参与位与的元素都相同,位与结果就是这个相同元素。

代码:

java 复制代码
class Solution {
    public int rangeBitwiseAnd(int left, int right) {
        int count = 0;  // 记录右移次数
        while (left != right) {
            count++;
            left >>= 1;
            right >>= 1;
        }
        return left <<= count;  // 左移
    }
}

性能:

相关推荐
keke.shengfengpolang17 分钟前
2027届大数据管理与应用求职:采购数字化岗位JD数据能力拆解
面试
我就是不信23 分钟前
C语言排序问题详解:从冒泡到快排的完整指南
c语言·算法·排序算法
l1t29 分钟前
DeepSeek总结的PIVCO-Huffman编码性能优化
数据结构·c++·算法
-dzk-39 分钟前
【贪心算法】LC 763.划分字母区间
算法·贪心算法
拾饵9421 小时前
第六周第二节那个RAG工业项目遇到的问题
算法
强壮的CAT1 小时前
VINS-Fusion 移植 ROS2 Jazzy 踩坑(一):环境与编译
人工智能·算法·机器人·自动驾驶
Omics Pro1 小时前
计算虚拟扰动:网络毒理+虚拟敲除
数据库·人工智能·算法·机器学习·自然语言处理
yyy(十一月限定版)1 小时前
CF2137D Replace with Occurrences
算法
谢亮_vipxieliang1 小时前
GC 入门:G1 与 ZGC 怎么选
java·jvm·算法
兔小盈1 小时前
有效三角形个数与和为s的两个数字
算法·双指针