LeetCode201_201. 数字范围按位与
一、描述
给你两个整数 left 和 right ,表示区间 [left, right] ,返回此区间内所有数字 按位与 的结果(包含 left 、right 端点)。
示例 1:
输入:left = 5, right = 7
输出:4
示例 2:
输入:left = 0, right = 0
输出:0
示例 3:
输入:left = 1, right = 2147483647
输出:0
提示:
0 <= left <= right <= 2的31次方 - 1
二、题解
方法:使用位运算Brian Kernighan算法,可以用于清除二进制数中最右侧的1
//AC 通过,超过的用户和具体的执行时间以及环境有关,只有一定的参考性。
public int rangeBitwiseAnd(int left, int right) {
//使用位运算Brian Kernighan算法,可以用于清除二进制数中最右侧的1
while (left < right){
right = right & (right - 1);
}
return right;
}
LeetCode 200. 岛屿数量
LeetCode 201. 数字范围按位与
LeetCode 202. 快乐数
LeetCode 203. 移除链表元素
LeetCode 204. 计数质数
LeetCode 205. 同构字符串
LeetCode 206. 反转链表
LeetCode 207. 课程表
LeetCode 208. 实现 Trie (前缀树)
LeetCode 209. 长度最小的子数组
LeetCode 210. 课程表 II
声明:
题目版权为原作者所有。文章中代码及相关语句为自己根据相应理解编写,文章中出现的相关图片为自己实践中的截图和相关技术对应的图片,若有相关异议,请联系删除。感谢。转载请注明出处,感谢。
By luoyepiaoxue2014
B站: https://space.bilibili.com/1523287361 点击打开链接
微博: http://weibo.com/luoyepiaoxue2014 点击打开链接