LeetCode 201 Bitwise AND of Numbers Range
2016-09-04 22:24
267 查看
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之间的所有数字位相与,结果就是m,n的二进制最左边共同的部分。
逐步右移m,n,如果移位后相等,那么再往回左移相应的位数,就是m,n最左边相等的部分。
递归
[java] view
plain copy
public int rangeBitwiseAnd(int m, int n) {
if (n == m) return n;
return rangeBitwiseAnd(m >> 1, n >> 1) << 1;
}
迭代:
[java] view
plain copy
public int rangeBitwiseAnd(int m, int n) {
int count = 0;
while (m != n) {
m >>= 1;
n >>= 1;
count++;
}
return (m << count);
}
For example, given the range [5, 7], you should return 4.
思路:介于(包括)m,n之间的所有数字位相与,结果就是m,n的二进制最左边共同的部分。
逐步右移m,n,如果移位后相等,那么再往回左移相应的位数,就是m,n最左边相等的部分。
递归
[java] view
plain copy
public int rangeBitwiseAnd(int m, int n) {
if (n == m) return n;
return rangeBitwiseAnd(m >> 1, n >> 1) << 1;
}
迭代:
[java] view
plain copy
public int rangeBitwiseAnd(int m, int n) {
int count = 0;
while (m != n) {
m >>= 1;
n >>= 1;
count++;
}
return (m << count);
}
相关文章推荐
- [LeetCode 201] Bitwise AND of Numbers Range
- Leetcode201(Bitwise AND of Numbers Range)
- [LeetCode 201] Bitwise AND of Numbers Range
- leetcode 201:Bitwise AND of Numbers Range
- leetcode:bits:Bitwise AND of Numbers Range(201)
- Leetcode 201 Bitwise AND of Numbers Range 区间内整数按位与
- Java for LeetCode 201 Bitwise AND of Numbers Range
- leetcode 201: Bitwise AND of Numbers Range
- Leetcode-201- Bitwise AND of Numbers Range
- leetCode191/201/202/136 -Number of 1 Bits/Bitwise AND of Numbers Range/Happy Number/Single Number
- Leetcode 201 Bitwise AND of Numbers Range
- 【LeetCode 201】Bitwise AND of Numbers Range
- leetcode 201: Bitwise AND of Numbers Range
- LeetCode 201 Bitwise AND of Numbers Range
- LeetCode 201-Bitwise AND of Numbers Range
- leetcode-201 Bitwise AND of Numbers Range
- 【LeetCode-面试算法经典-Java实现】【201-Bitwise AND of Numbers Range(范围数位与结果)】
- LeetCode(201) Bitwise AND of Numbers Range
- leetCode191/201/202/136 -Number of 1 Bits/Bitwise AND of Numbers Range/Happy Number/Single Number
- [Leetcode 201, Medium] Bitwise AND of Numbers Range