[leetcode][bit] Bitwise AND of Numbers Range
2015-05-23 16:03
363 查看
题目:
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.
方法一:
方法二:
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.
方法一:
class Solution { public: int rangeBitwiseAnd(int m, int n) { //设从最高位开始第一个m和n不同的位为i,则从i开始其后的所有位都为0 unsigned mask = 1 << 31; int res = 0; while (mask){ if ((mask & m) != (mask & n)) break; res = res | mask & m; mask = mask >> 1; } return res; } };
方法二:
class Solution { public: int rangeBitwiseAnd(int m, int n) { int offset = 0; while(m != n){ m >>= 1; n >>= 1; offset++; } int res = m << offset; return res; } };
相关文章推荐
- Posts Tagged 【bit】Bitwise AND of Numbers Range
- leetCode191/201/202/136 -Number of 1 Bits/Bitwise AND of Numbers Range/Happy Number/Single Number
- 《leetCode》:Bitwise AND of Numbers Range
- [leetcode] Bitwise AND of Numbers Range
- [Leetcode]Bitwise AND of Numbers Range
- LeetCode(201) Bitwise AND of Numbers Range
- LeetCode Bitwise AND of Numbers Range
- LeetCode--Bitwise AND of Numbers Range
- leetcode之Bitwise AND of Numbers Range
- [leetcode] Bitwise AND of Numbers Range(位运算)
- [Leetcode 201, medium] Bitwise AND of Numbers Range
- LeetCode201--Bitwise AND of Numbers Range
- LeetCode Bitwise AND of Numbers Range
- LeetCode-Bitwise AND of Numbers Range-解题报告
- Bitwise AND of Numbers Range -- leetcode
- [Leetcode] Bitwise AND of Numbers Range
- LeetCode - Bitwise AND of Numbers Range
- [LeetCode] Bitwise AND of Numbers Range
- leetcode 201: Bitwise AND of Numbers Range
- Bitwise AND of Numbers Range——LeetCode