[Leetcode][第201题][JAVA][数字范围按位与][位运算][Brian Kernighan]

【问题描述】[中等]

在这里插入图片描述

【解答思路】

1. 暴力

逐位与 ,只需要判断i= 0 或 i == 2147483647 的话,就跳出 for 循环即可。
在这里插入图片描述

时间复杂度:O(N) 空间复杂度:O(1)

public int rangeBitwiseAnd(int m, int n) {//m 要赋值给 i,所以提前判断一下if(m == Integer.MAX_VALUE){return m;}int res = m;for (int i = m + 1; i <= n; i++) {res &= i;if(res == 0 ||  i == Integer.MAX_VALUE){break;}}return res;
}
2. 位移

在这里插入图片描述
在这里插入图片描述

时间复杂度:O(logN) 空间复杂度:O(1)

class Solution {public int rangeBitwiseAnd(int m, int n) {int shift = 0;// 找到公共前缀while (m < n) {m >>= 1;n >>= 1;++shift;}return m << shift;}
}
3. Brian Kernighan

在这里插入图片描述
在这里插入图片描述

时间复杂度:O(logN) 空间复杂度:O(1)
在这里插入图片描述

class Solution {public int rangeBitwiseAnd(int m, int n) {while (m < n) {// 抹去最右边的 1n = n & (n - 1);}return n;}
}

【总结】

1. 位运算

异或运算(^)
运算规则:0^0=0; 0^1=1; 1^0=1; 1^1=0;
即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。
5 ^ 1 = 0101 ^ 0001 = 0100 = 4
5 ^ 3 = 0101 ^ 0011 = 0110 = 6
用法

  1. 翻转指定位 对应位异或1
    X=10101110,使X低4位翻转,用X ^0000 1111 = 1010 0001即可得到。
  2. 两个数是否相等 ==0
    5 ^ 5 = 0101 ^ 0101 = 0000 = 0

与运算(&)
运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;
即:两位同时为“1”,结果才为“1”,否则为0
5 & 1 = 0101 & 0001 = 0001 = 1
5 & 2 = 0101 & 0010 = 0000 = 0
用法
取指定位 对应位与1
设X=10101110,
取X的低4位,用 X & 0000 1111 = 00001110 即可得到;

或运算(|)
运算规则:0|0=0; 0|1=1; 1|0=1; 1|1=1;
即 :参加运算的两个对象只要有一个为1,其值为1
用法:
指定位置置1 对应位或1
将X=10100000的低4位置1 ,用X | 0000 1111 = 1010 1111即可得到

取反运算(~)
运算规则:~1=0; ~0=1;
即:对一个二进制数按位取反,即将0变1,1变0

带符号左移运算(<<)
若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2(右边补0)
3 << 1 = 0011 <<1 = 0110 = 6
带符号右移运算(>>)
正数操作数每右移一位,相当于该数除以2
(左补0 or 补1得看被移数是正还是负)
5 >> 1 = 0101 >> 1 = 0010 = 2
5 >> 2 = 0101 >> 2 = 0001 = 1
-14 >> 2 = 11110010 >> 2 = 11111100 = -4
无符号右移运算(>>>)
5 >>> 1 = 0101 >>> 1 = 0010 = 2
-14 >>>2 =11111111 11111111 1111111111110010 >>>2 = 00111111 11111111 1111111111111100 = 1073741820
移位总结

  • 正数的左移与右移,负数的无符号右移,就是相应的补码移位所得,在高位补0即可。
  • 负数的右移,就是补码高位补1,然后按位取反加1即可。
2. 位运算 判相等换位异或^ 取位与&1 置位或|1
3. Brian Kernighan算法

n&(n-1) //n二进制最右位的 1 置 0

相关题目Brian Kernighan算法
[Leetcode][第461题][JAVA][汉明距离][位运算][Brian Kernighan]

参考链接:https://leetcode-cn.com/problems/bitwise-and-of-numbers-range/solution/shu-zi-fan-wei-an-wei-yu-by-leetcode-solution/
参考链接:https://leetcode-cn.com/problems/bitwise-and-of-numbers-range/solution/xiang-xi-tong-su-de-si-lu-fen-xi-duo-jie-fa-by–41/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文档排序模型--查询似然Query Likelihood

在概率模型中&#xff0c;我们定义排序函数是基于文档与查询之间的相关度、可能性来做的。f(d,q) p(R1|d,q), R ∈{0,1}。概率模型有几个小分类&#xff1a;   经典概率模型——>BM25   语言模型Language Model —–>Query Likelihood   Divergence from rando…

第五十二期:甲骨文遭遇“中年危机”:继阿里后,再被亚马逊永久抛弃

42岁的甲骨文迎来“中年危机”。10月15日&#xff0c;亚马逊AWS技术布道者Jeff Barr在AWS官网宣布亚马逊消费者业务永久弃用甲骨文(Oracle)数据库。 作者&#xff1a;温暖来源&#xff1a;镁客网 42岁的甲骨文迎来“中年危机”。 10月15日&#xff0c;亚马逊AWS技术布道者Jef…

[Leetcode][第461题][JAVA][汉明距离][位运算][Brian Kernighan]

【问题描述】[简单] 【解答思路】 1. 内置位计数功能 时间复杂度&#xff1a;O(1) 空间复杂度&#xff1a;O(1) class Solution {public int hammingDistance(int x, int y) {return Integer.bitCount(x ^ y); } }2. 移位 时间复杂度&#xff1a;O(1) 空间复杂度&#xff1…

第二十八期:Notepad++ 新 Logo 出炉,官网全新改版采用自适应设计

Notepad 的推特帐号发布了关于 notepad 的消息。与旧版 Logo 相比&#xff0c;新 Logo 整体的变化不大&#xff0c;不过官方则表示新版 Logo 比旧版的更吸引人&#xff0c;也更加简洁且更具意义。 新旧 Logo 对比如下&#xff08;左边为旧版 Logo&#xff09;&#xff1a; 除了…

React Navigation 导航栏样式调整+底部角标消息提示

五一佳节匆匆而过&#xff0c;有人选择在外面看人山人海&#xff0c;有人选择宅在家中度过五一&#xff0c;也有人依然坚守在第一线&#xff0c;致敬&#xff01; 这是坚持学习react-native的第二篇文章&#xff0c;可能会迟到&#xff0c;但是绝不会缺席&#xff0c;这篇要涉及…

反馈(Feedback)

说明&#xff1a;文章内容来源于课程视频和课程ppt。我只学习了课程没有做习题。文章不是翻译&#xff0c;是我对课程的理解。  终于到了第四部分了。之前提到过的&#xff0c;一个文本检索系统分词索引打分反馈。前面三部分都已经在前面的文档中介绍了。现在看反馈。反馈是根…

【数据结构与算法】堆

一&#xff1a;如何理解“堆” 1&#xff0c;堆是一个完全二叉树&#xff1b; 完全二叉树要求除了最后一层&#xff0c;其他层的节点都是满的&#xff0c;最后一层的节点都靠左排列。 2&#xff0c;堆中每个节点都必须大于等于&#xff08;或小于等于&#xff09;其子树中每个…

第五十三期:资深技术Leader肺腑忠告:如何成为技术大牛?

这篇文章&#xff0c;对于每一个想成为技术大牛的人来说都值得仔细阅读好几遍。 作者&#xff1a;曹乐来源&#xff1a;再成长一次 图片来自 Pexels 双生说&#xff1a;曹乐是典型学霸&#xff0c;清华本硕&#xff0c;多年互联网大厂研发经验&#xff0c;所以“资深”。我刚…

互联网搜索引擎

说明&#xff1a;文章内容来源于课程视频和课程ppt。我只学习了课程没有做习题。文章不是翻译&#xff0c;是我对课程的理解。 1 挑战 互联网搜索引擎与一般搜索引擎的区别主要在以下问题。  第一是数据量(scalability)。互联网搜索需要处理的数据量大&#xff0c;如何保证能…

第五十四期:Libra盟友纷纷“跳船”,联盟链还有戏吗?

曾经被诺贝尔奖得主斯蒂格利茨评价为“傻子才信”的Facebook数字加密货币项目Libra&#xff0c;自从出世开始就负面不断。最近在其首届理事会议前夕&#xff0c;PayPal、Visa、万事达、Stripe和eBay等全球型金融巨头“盟友”的相继退出&#xff0c;更使其遭遇了不少“看空”。 …

python time模块

时间戳、结构化时间、字符串时间 import time#时间戳 &#xff0c;大多时候用于计算 #从1970年0点0分0秒开始计算的秒数 print(time.time())#结构化时间------当地时间&#xff08;东8区&#xff09; #返回一个时间对象 print(time.localtime())#time.localtime()中默认参数为…

第五十五期:区块链将在2020年实现的重大改变

科技界的每家公司都已经拥有区块链战略。如果他们现在没有&#xff0c;他们就有可能错过了这个时代的一个机会。在过去几年中&#xff0c;许多企业已经对整体采用区块链技术的好处和相关风险进行了估算&#xff0c;分析和讨论。 科技界的每家公司都已经拥有区块链战略。如果他们…

为什么机器学习算法要与人类水平比较

原因 1 近年来机器学习的效果越来越好&#xff0c;能够和人类的相应能力做比较。 2 设计和构建机器学习系统&#xff0c;这个工作流程很高效。 因为种种原因&#xff0c;ML或者人都不可能超过Bayes Optimal Error 贝叶斯最优误差&#xff0c;ML随着时间推移会越来越接近贝…

第二十九期:运维之三大监控对比

Zabbix核心组件主要是Agent和Server&#xff0c;其中Agent主要负责采集数据并通过主动或者被动的方式采集数据发送到Server/Proxy&#xff0c;除此之外&#xff0c;为了扩展监控项&#xff0c;Agent还支持执行自定义脚本。 作者&#xff1a;艺术生的运维路来源&#xff1a;今日…

[Leetcode][第459题][JAVA][重复的字符串][子串][匹配]

【问题描述】[中等] 【解答思路】 1. 枚举 找出能整除的子串长度&#xff0c;再用substring遍历匹配即可 时间复杂度&#xff1a;O(N^2) 空间复杂度&#xff1a;O(1) class Solution {public boolean repeatedSubstringPattern(String s) {int len s.length();for(int i 1…

第五十六期:百度CTO王海峰CNCC2019演讲:深度学习平台支撑产业智能化

百度CTO王海峰在会上发表题为《深度学习平台支撑产业智能化》的演讲&#xff0c;分享了百度关于深度学习技术推动人工智能发展及产业化应用的思考&#xff0c;并深度解读百度飞桨深度学习平台的优势&#xff0c;以及与百度智能云结合助力产业智能化的成果。 作者&#xff1a;佚…

【STM32】IIC的基本原理(实例:普通IO口模拟IIC时序读取24C02)(转载)

版权声明&#xff1a;本文为博主原创文章&#xff0c;允许转载&#xff0c;但希望标注转载来源。 https://blog.csdn.net/qq_38410730/article/details/80312357IIC的基本介绍 IIC的简介 IIC&#xff08;Inter&#xff0d;Integrated Circuit&#xff09;总线是一种由PHILIPS公…

【数据结构与算法】广度优先遍历(BFS) 深度优先遍历(DFS)

一、 搜索算法 深度优先搜索和广度优先搜索是最暴力的图的搜索算法。算法的目标是&#xff0c;给定一张图&#xff0c;一对初始和终止节点&#xff0c;找到两节点之间的节点路径。&#xff08;代码均是找到两个节点之间的路径&#xff09; 广度优先搜索是一层一层搜索&#xf…

stack专题

20 Valid Parentheses 问题&#xff1a;没有意识到字符串中只包含字符&#xff1a;’(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’ 代码&#xff1a;git代码 682 Baseball Game 问题&#xff1a;错误在操作&#xff1a;top1 先弹出&#xff0c;top2 再弹出&#xff0c;还原到…

第三十期:简单好用的9个电脑必备工具!让你轻松10倍

下面 9 款工具都是精心挑选的电脑必备神器&#xff0c;涵盖你需要的各个方面&#xff0c;无论是安全防护、文件查找、解压加密还是娱乐都在其中&#xff1b;最最最重要的是&#xff0c;它们不但各个功能强大&#xff0c;而且非常轻便&#xff0c;没有弹窗广告、没有捆绑安装、也…