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

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

提示: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;  // 左移
    }
}

性能

相关推荐
消失的旧时光-19432 分钟前
Android 面试高频:JSON 文件、大数据存储与断电安全(从原理到工程实践)
android·面试·json
yuhaiqiang5 分钟前
被 AI 忽悠后,开始怀念搜索引擎了?
前端·后端·面试
CoovallyAIHub18 分钟前
Pipecat:构建实时语音 AI Agent 的开源编排框架,500ms 级端到端延迟
深度学习·算法·计算机视觉
灰色小旋风22 分钟前
力扣13 罗马数字转整数
数据结构·c++·算法·leetcode
2301_8101609526 分钟前
C++与物联网开发
开发语言·c++·算法
li星野29 分钟前
[特殊字符] Linux/嵌入式Linux面试模拟卷
linux·运维·面试
cm65432030 分钟前
基于C++的操作系统开发
开发语言·c++·算法
ArturiaZ33 分钟前
【day57】
开发语言·c++·算法
CoovallyAIHub34 分钟前
Energies | 8版YOLO对8版Transformer实测光伏缺陷检测,RF-DETR-Small综合胜出
深度学习·算法·计算机视觉
Emberone42 分钟前
排序:万物皆有序
算法·排序算法