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

性能

相关推荐
CoderYanger9 小时前
D.二分查找-基础——744. 寻找比目标字母大的最小字母
java·开发语言·数据结构·算法·leetcode·职场和发展
元亓亓亓9 小时前
LeetCode热题100--347. 前 K 个高频元素--中等
数据结构·算法·leetcode
Hello eveybody9 小时前
冒泡、选择、插入排序简介(C++)
数据结构·算法·排序算法
CoderYanger9 小时前
贪心算法:2.将数组和减半的最少操作次数
java·算法·leetcode·贪心算法·1024程序员节
爱学java的ptt9 小时前
面试手撕排序
java·面试
Chen--Xing9 小时前
LeetCode 49.字母异位词分组
c++·python·算法·leetcode·rust
长安er9 小时前
LeetCode 235 & 236 最近公共祖先(LCA)解题总结
算法·leetcode·二叉树·递归·lca
测试人社区-小明9 小时前
从前端体验到后端架构:Airbnb全栈SDET面试深度解析
前端·网络·人工智能·面试·职场和发展·架构·自动化
im_AMBER9 小时前
Leetcode 77 数组中的最大数对和 | 统计坏数对的数目
笔记·学习·算法·leetcode
代码游侠9 小时前
学习笔记——Linux 进程管理笔记
linux·运维·笔记·学习·算法