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

性能

相关推荐
镜花水月linyi4 分钟前
Java 线程创建的完整链路:从 Java 层 → JVM 层 → 操作系统层
java·后端·面试
jianfeng_zhu15 分钟前
不带头节点的链式存储实现链栈
数据结构·算法
lightqjx17 分钟前
【算法】双指针
c++·算法·leetcode·双指针
历程里程碑20 分钟前
C++ 7vector:动态数组的终极指南
java·c语言·开发语言·数据结构·c++·算法
mit6.82422 分钟前
get+二分|数位dp
算法
sin_hielo26 分钟前
leetcode 2147
数据结构·算法·leetcode
萌>__<新39 分钟前
力扣打卡每日一题——缺失的第一个正数
数据结构·算法·leetcode
DuHz43 分钟前
车对车对向交汇场景的毫米波路径损耗建模论文精读
论文阅读·算法·汽车·信息与通信·信号处理
lxh01131 小时前
二叉树中的最大路径和
前端·算法·js
萌>__<新1 小时前
力扣打卡每日一题————零钱兑换
算法·leetcode·职场和发展