给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。

示例 1:

输入: [5,7]
输出: 4

示例 2:

输入: [0,1]
输出: 0

思路分析

由于是按位与,那么某位一旦出现0,结果该位肯定是0。所以只需要考虑m,n都是1的位置。那么直接从高位开始,往低位走,直到遇到该为的数字不相等,将其后的数为都置为0,即为[m,n]之间所有的数字按位与的结果。代码如下

#include<bits/stdc++.h>

using namespace std;
static auto x = []() {
std::ios::sync_with_stdio(false);
std::cin.tie(NULL);
return 0;
}(); class Solution {
public:
int rangeBitwiseAnd(int m, int n) {
int ret = 0;
for(int i = 31; i >= 0; --i){
int c = (1<<i);
if((m&c) == (n&c)){
ret |= (m&c);
}else break;
}
return ret;
}
}; int main() { return 0;
}

最新文章

  1. docker-centos 7.2
  2. JS、C#及SQL中的DateTime
  3. JQuery fullCalendar 时间差 排序获取距当前最近的时间。
  4. SQL 执行计划(一)
  5. 使用response实现文件的下载
  6. 静态代码检查工具-PMD初学者入门篇
  7. android中在代码中设置margin属性
  8. opencv常用数据结构之:IplImage
  9. JAVA TCP网络编程学习笔记
  10. SendKeys总结
  11. (续)顺序表之单循环链表(C语言实现)
  12. 一、java自带的观察者模式
  13. ZS and The Birthday Paradox
  14. Webpack单元测试,e2e测试
  15. coreCLR系列随笔 之ClrJit项目之alloc.cpp文件分析(1)
  16. 如何修改WinPE Boot的.wim镜像文件
  17. Java 并发学习笔记
  18. SQL Server数据库文件与文件组总结
  19. 环境部署(五):Linux下安装Gradle
  20. 【Java入门提高篇】Day27 Java容器类详解(九)LinkedList详解

热门文章

  1. asp .net core 中间件的简单 使用
  2. vue input框设置值 一般对象都是通过打点形式取值
  3. Git配置和常用命令
  4. Oracle 启动 停止JOB
  5. 开发必看 | iOS开发常用设计模式!
  6. Centos下使用Docker部署asp.net core项目
  7. System.gc()日志分析
  8. get请求中文乱码问题
  9. yii2深入理解之内核解析
  10. 解决cmd 运行python socket怎么终止运行