LeetCode 201.Bitwise AND of Numbers Range (数字范围按位与)

谁借莪1个温暖的怀抱¢ 2022-04-15 01:11 291阅读 0赞

给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。

示例 1:

  1. 输入: [5,7]
  2. 输出: 4

示例 2:

  1. 输入: [0,1]
  2. 输出: 0

AC C++ Solution:

  1. class Solution {
  2. public:
  3. int rangeBitwiseAnd(int m, int n) {
  4. int trans = 0;
  5. while(m != n) { //当m != n 时,移除末尾位,并记录移动位数,最后再移回来。即为范围内所有数字按位与的结果
  6. ++trans;
  7. m >>= 1;
  8. n >>= 1;
  9. }
  10. return m << trans;
  11. }
  12. };

发表评论

表情:
评论列表 (有 0 条评论,291人围观)

还没有评论,来说两句吧...

相关阅读