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

性能

相关推荐
月明长歌2 分钟前
【码道初阶】Leetcode面试题02.04:分割链表[中等难度]
java·数据结构·算法·leetcode·链表
如竟没有火炬4 分钟前
快乐数——哈希表
数据结构·python·算法·leetcode·散列表
TL滕6 分钟前
从0开始学算法——第十四天(数组与搜索练习)
笔记·学习·算法
努力学算法的蒟蒻7 分钟前
day32(12.12)——leetcode面试经典150
面试·职场和发展
SoleMotive.9 分钟前
bio、nio、aio的区别以及使用场景
python·算法·nio
一招定胜负17 分钟前
机器学习算法二:逻辑回归
算法·机器学习·逻辑回归
星诺算法备案18 分钟前
算法备案材料:明晰材料逻辑,构建安全合规的算法体系
人工智能·算法·推荐算法·备案
another heaven20 分钟前
【软考 cache映射】主存容量
算法
ULTRA??22 分钟前
判断水仙花数并输出,c++
c++·算法
Arva .24 分钟前
G1收集器
java·jvm·算法