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

性能

相关推荐
第七种黄昏9 分钟前
前端面试-箭头函数
前端·面试·职场和发展
怎么没有名字注册了啊32 分钟前
查找成绩(数组实现)
c++·算法
沐怡旸42 分钟前
【算法】725.分割链表--通俗讲解
算法·面试
沐怡旸1 小时前
【底层机制】【Android】深入理解UI体系与绘制机制
android·面试
L_09072 小时前
【Algorithm】Day-4
c++·算法·leetcode
渣哥2 小时前
面试官最爱刁难:Spring 框架里到底用了多少经典设计模式?
javascript·后端·面试
代码充电宝2 小时前
LeetCode 算法题【简单】20. 有效的括号
java·算法·leetcode·面试·职场和发展
海琴烟Sunshine2 小时前
leetcode 119. 杨辉三角 II python
算法·leetcode·职场和发展
小杨的全栈之路2 小时前
霍夫曼编码:数据压缩的核心算法详解(附图解 + 代码)
算法
南北是北北2 小时前
RecyclerView:RecycledViewPool(回收池)
面试