当前位置:首页 > 编程笔记 > 正文
已解决

leetcode做题笔记201. 数字范围按位与

来自网友在路上 141841提问 提问时间:2023-10-25 06:22:37阅读次数: 41

最佳答案 问答题库418位专家为你答疑解惑

给你两个整数 left 和 right ,表示区间 [left, right] ,返回此区间内所有数字 按位与 的结果(包含 left 、right 端点)。

示例 1:

输入:left = 5, right = 7
输出:4

示例 2:

输入:left = 0, right = 0
输出:0

示例 3:

输入:left = 1, right = 2147483647
输出:0

思路一:模拟题意

c++解法

class Solution {
public:int rangeBitwiseAnd(int left, int right) {int shift=0;while(left<right){left=left>>1;right=right>>1;shift++;}return left<<shift;}
};

分析:

本题要求两个整数之间所有数字按位与的结果,即按照题返回两个整数二进制字符之间的公共前缀,利用双指针两边向中间靠近求出即可

总结:

本题考察对按位与的思考,原求两个数字之间所有数按位与的结果可转换未求二进制字符间公共前缀,利用双指针的方法解决

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"leetcode做题笔记201. 数字范围按位与":http://eshow365.cn/6-23975-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!