201 Bitwise AND of Numbers Range 数字范围按位与
2024-08-23 03:47:30
给定范围 [m,n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含m, n两端点)。
例如,给定范围 [5,7],您应该返回 4。
详见:https://leetcode.com/problems/bitwise-and-of-numbers-range/description/
Java实现:
将m和n中的所有整数相与,得到的结果是m和n中的所有数的共同高位保留,除共同高位之外的其他位置零。那么关键问题就是如何找到这个共同的高位,其实并不难,m和n中所有数的共同高位也就是m和n的共同高位。
方法一:
class Solution {
public int rangeBitwiseAnd(int m, int n) {
int res=0;
while(m!=n){
m>>=1;
n>>=1;
++res;
}
return (m<<res);
}
}
方法二:
class Solution {
public int rangeBitwiseAnd(int m, int n) {
while (m < n){
n &= (n - 1);
}
return n;
}
}
C++实现:
class Solution {
public:
int rangeBitwiseAnd(int m, int n) {
int offset=0;
while(m!=n)
{
m>>=1;
n>>=1;
++offset;
}
return (m<<offset);
}
};
参考:https://www.cnblogs.com/grandyang/p/4431646.html
最新文章
- Kafka设计解析(二)- Kafka High Availability (上)
- python 2.6 与 2.4 区别
- 虚机centos和本机Windows之间文件的拷贝无法用xftp时用FileZilla也行
- 烂泥:U盘安装Centos6.5
- 夺命雷公狗---DEDECMS----28dedecms浏览次数的完成
- iphone获取当前运行进程列表
- Azure 云助手正式发布
- [WebService]之JWS_1
- oracle 插入timestamp
- 李洪强iOS开发之使用CycleScrollView实现轮播图
- 判断触摸的点在那个 View上
- 聊聊高并发(二十九)解析java.util.concurrent各个组件(十一) 再看看ReentrantReadWriteLock可重入读-写锁
- linux提取锁和信号灯经常使用
- 网络资源(4) - extJS视频
- public static void speckOnWin7(string text),在win7中读文字
- TortoiseGit HTTPS方式保存密码最简单的方法
- 手把手教你ranorex_android自动化测试第一个示例
- KB奇遇记(2):缘起
- 微信公众号开发笔记1(nodejs开发的)
- Sublime编辑器的使用
热门文章
- Python - 多次检查后缀名(endwith)
- Storm专题二:Storm Trident API 使用具体解释
- shuf乱序排列
- java里int类型转byte类型
- POJ 1927 Area in Triangle(计算几何)
- C++ 函数部分(1)
- HttpsURLConnection 安全传输(HTTPS--Secure Hypertext Transfer Protocol-安全超文本传输协议)
- YTU 1010: 目标柏林
- linux永久或临时修改dns
- 使用JSTL 对在页面上对 0,0,1 的分割处理 forTokens