【LeetCode-面试算法经典-Java实现】【201-Bitwise AND of Numbers Range(范围数位与结果)】
2015-08-26 07:18
555 查看
【201-Bitwise AND of Numbers Range(范围数位与结果)】
【LeetCode-面试算法经典-Java实现】【所有题目目录索引】
代码下载【https://github.com/Wang-Jun-Chao】
原题
Given a range [m, n] where0 <= 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; } }
评测结果
点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。特别说明
欢迎转载,转载请注明出处【/article/1324042.html】
相关文章推荐
- PHP 工程师面试的四个环节
- 程序员的年龄天花板
- 猎头给面试官的一些建议
- 找工作--面试2
- 记一次当面试官的经历
- 程序员的年龄天花板
- ……面试
- 黑马程序员——Java基础---集合
- 黑马程序员-Foundation2-dictionary
- sina的php的面试题
- 自动化出身程序员结合实例谈观察者模式
- 黑马程序员-Foundation1-NSString 的 compare方法
- 黑马程序员-OC-继承的多态性
- 程序员面试金典1.1:确定字符串的所有字符是否全都不同
- 黑马程序员-OC-继承
- 进职场记(二)-培训
- 剑指offer_面试题11 数值的整数次方_考察代码的完整性
- 剑指offer面试题java实现之题7:用两个栈模拟一个队列的入队和出队操作
- 黑马程序员-OC-getter & Setter方法
- 黑马程序员-OC-类方法和对象方法的调用