【LeetCode-面试算法经典-Java实现】【201-Bitwise AND of Numbers Range(范围数位与结果)】
来源:互联网 发布:cad网络电子版图纸 编辑:程序博客网 时间:2024/06/03 18:50
【201-Bitwise AND of Numbers Range(范围数位与结果)】
【LeetCode-面试算法经典-Java实现】【所有题目目录索引】
代码下载【https://github.com/Wang-Jun-Chao】
原题
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
.
题目大意
给一个范围,返回这个范围中所有的数按位相与最后的结果。
解题思路
当m!=n,那么最末位必定等0,因为[m, n]必定包含奇偶数,相与最末位等0。可以将m,n都右移一位,记为mk、 nk,这样就相当于将[m, n]之间的所有的数都右移动了一位,当mk=nk的时候,说明之前[m, n]之间的数右移一位后是相等的,右移后的数作AND操作,结果还是m(=n),所以操作就可以停止了记录右移的次数,offset,m>>offset即为所求结果
代码实现
算法实现类
public class Solution { public int rangeBitwiseAnd(int m, int n) { int offset = 0; while (m != n) { m >>= 1; n >>= 1; offset++; } return m << offset; }}
评测结果
点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。
特别说明
欢迎转载,转载请注明出处【http://blog.csdn.net/derrantcm/article/details/47997613】
2 0
- error: jump to case label [-fpermissive]
- Android handleMessage 的简单用法案例
- 8.25学习总结
- 几个将汉字转换成拼音的在线工具
- (一)新浪微博_OAuth2.0授权机制
- 【LeetCode-面试算法经典-Java实现】【201-Bitwise AND of Numbers Range(范围数位与结果)】
- BZOJ 2622 [2012国家集训队测试]深入虎穴 SPFA
- eclipse安装subversion(SVN)版本控制插件
- 【LeetCode-面试算法经典-Java实现】【202-Happy Number(开心数字)】
- Mac 下基本命令command not found 解决办法
- 【LeetCode-面试算法经典-Java实现】【203-Remove Linked List Elements(删除单链表中的元素)】
- Spring MVC ResourceBundleViewResolver example
- Linux下安装配置Eclipseforphp
- A2.2.4继承与多态 P376