博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 201. 数字范围按位与 解题报告
阅读量:5299 次
发布时间:2019-06-14

本文共 567 字,大约阅读时间需要 1 分钟。

给定范围 [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
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<

转载于:https://www.cnblogs.com/crackpotisback/p/10203113.html

你可能感兴趣的文章
Redis内存存储
查看>>
思维导图局域网共享功能使用教程
查看>>
【WebGoat 学习笔记】--3.试用中出现的问题汇总及解决办法
查看>>
awk 里的substr()
查看>>
python 使用装饰器模式 保证带有默认值的参数不被修改默认值
查看>>
NIOS知识一
查看>>
记录magento通过csv文件与zip(图片压缩)上传产品到数据库的过程
查看>>
BZOJ_3039_玉蟾宫_(动态规划+悬线法)
查看>>
Struts2 OGNL 自动转换Date类型的一些注意事项
查看>>
vue-cli + webpack自动生成项目
查看>>
定义Bash提示符中显示IP
查看>>
两个div如何并列 (转)
查看>>
SSH2框架下数据库语句的编写格式(一)
查看>>
返回结果数据帮助类
查看>>
SVN部署和使用
查看>>
Build Tools
查看>>
Mysql的基础使用之MariaDB安装
查看>>
单链表操作B 分类: 链表 2015-06-0...
查看>>
周赛-Heros and Swords 分类: 比赛 ...
查看>>
Error:No suitable device found: no device found for connection "System eth0"
查看>>