博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bitwise AND of Numbers Range
阅读量:4073 次
发布时间:2019-05-25

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

Bitwise AND of Numbers Range

Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all numbers in this range, inclusive.

For example, given the range [5, 7], you should return 4.

Java代码:

public class Solution {    public int rangeBitwiseAnd(int m, int n) {        Set set = new HashSet<>();		for (int tmp = m, i = 0; tmp > 0; tmp = tmp / 2, i++) {			if (tmp % 2 == 1) {				set.add(i);			}		}		if (set.size() == 0)			return 0;		ArrayList
list = new ArrayList
(); Iterator ite = set.iterator(); while (ite.hasNext()) { int tmp = (Integer) ite.next(); if ((n >> tmp) % 2 == 0) list.add(tmp); } for (int i = 0; i < list.size(); i++) set.remove(list.get(i)); if (set.size() == 0) return 0; int middle = m + (n - m) / 2; while (middle != m) { ite = set.iterator(); list.clear(); while (ite.hasNext()) { int tmp = (Integer) ite.next(); if ((middle >> tmp) % 2 == 0) list.add(tmp); } for (int i = 0; i < list.size(); i++) set.remove(list.get(i)); if (set.size() == 0) return 0; middle = m + (middle - m) / 2; } ite = set.iterator(); int result = 0; while (ite.hasNext()) { int tmp = (Integer) ite.next(); result += 1 << tmp; } return result; }}
 

转载地址:http://ivuni.baihongyu.com/

你可能感兴趣的文章
Golang 数据可视化利器 go-echarts ,实际使用
查看>>
mysql 跨机器查询,使用dblink
查看>>
mysql5.6.34 升级到mysql5.7.32
查看>>
dba 常用查询
查看>>
Oracle 异机恢复
查看>>
Oracle 12C DG 搭建(RAC-RAC/RAC-单机)
查看>>
Truncate 表之恢复
查看>>
Oracle DG failover 后恢复
查看>>
为什么很多程序员都选择跳槽?
查看>>
mongdb介绍
查看>>
Yotta企业云盘助力科技行业创高峰
查看>>
Yotta企业云盘更好地为教育行业服务
查看>>
Yotta企业云盘怎么帮助到能源化工行业
查看>>
企业云盘如何助力商业新发展
查看>>
医疗行业运用企业云盘可以带来什么样的提升
查看>>
媒体广告业如何运用云盘提升效率
查看>>
IOS开发的开源库
查看>>
Jenkins - sonarqube 代码审查
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成(一)
查看>>
Jenkins + Docker + SpringCloud 微服务持续集成 - 单机部署(二)
查看>>