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

性能

相关推荐
每天的积累22 分钟前
面试知识点总结篇一
单片机·嵌入式硬件·面试·应用层
水寒之26 分钟前
简历技能面试问答
面试·职场和发展
shangan_341 分钟前
JAVA随机排名
java·算法·排序算法
威哥爱编程1 小时前
除了递归算法,要如何优化实现文件搜索功能
java·算法·递归·memoization
程序员波特1 小时前
基础数据结构之链表
java·数据结构·算法
Kenneth風车1 小时前
【第十二章:Sentosa_DSML社区版-机器学习之回归】
人工智能·算法·低代码·机器学习·数据挖掘·数据分析·回归
鱼跃鹰飞1 小时前
Leetcode面试经典150题-172.阶乘后的零
java·算法·leetcode·面试·职场和发展
tan77º1 小时前
【AcWing】基础算法
数据结构·c++·算法