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

性能

相关推荐
菜菜的顾清寒1 分钟前
力扣HOT100(51) 动态规划-单词拆分
算法·leetcode·动态规划
风筝在晴天搁浅10 分钟前
剑指Offer LCR 143.子结构判断
算法
咖啡八杯19 分钟前
GoF设计模式——装饰模式
java·算法·设计模式·装饰器模式
装不满的克莱因瓶20 分钟前
实现矩阵的点积:从数学原理到 NumPy 实战
人工智能·线性代数·算法·机器学习·矩阵·numpy
HZ·湘怡21 分钟前
树 的定义 与 性质
算法·
梦想的颜色21 分钟前
Docker 入门指南:从零开始掌握容器化技术
运维·服务器·vscode·python·算法·docker·云原生
cpp_250124 分钟前
P10109 [GESP202312 六级] 工作沟通
数据结构·c++·算法·题解·洛谷·gesp六级
吴可可12324 分钟前
CAD二次开发中多段线定点分割技巧
算法
ʚ希希ɞ ྀ27 分钟前
全排列 --- 回溯
算法·leetcode·深度优先
玉树临风ives28 分钟前
atcoder ABC 460 题解
数据结构·c++·算法