LeetCode-Bitwise AND of Numbers Range-解题报告

转载 2015年07月08日 19:08:09

原题链接 https://leetcode.com/problems/bitwise-and-of-numbers-range/

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做移位操作,每次向后移动一位,并同时用offset记录移动了多少位,

如果m == n 表示前面的部分相同,辣么对它们做与操作必定是m或者n。

如果m != n 表面当前位存在不同的值,不同的值与起来必定是 1 & 0 = 0。

所以最终答案就是 移位后当m == n 时 ans = m << offset .

很巧妙有没有,很佩服。当时想了很多,越想越复杂,每次写到一半就发现是错的。。

class Solution {
public:
    int rangeBitwiseAnd(int m, int n)
	{
		int offset = 0;
		while (m != n)
		{
			offset++;
			m >>= 1;
			n >>= 1;
		}
		return m << offset;
	}
};


*LeetCode-Bitwise AND of Numbers Range

其实在一个range内 只要看两个边界就可以了 一定是在高位的连续几位会都相同 之后的几位会vary 后面一定会全是0 所以一直把m n右移 计数 然后知道他们完全相同  完全相同之后再后面补足之...
  • bsbcarter
  • bsbcarter
  • 2015年09月23日 07:57
  • 185

201. Bitwise AND of Numbers Range-位运算

原题链接:201. Bitwise AND of Numbers Range 【思路1】 public int rangeBitwiseAnd(int m, int n) { ...
  • happyaaaaaaaaaaa
  • happyaaaaaaaaaaa
  • 2016年03月18日 13:18
  • 305

poj解题报告——2313

开始假设b[i] = a[i](1 Mid(b[i - 1], a[i], b[i + 1]) (2
  • Lingfu74
  • Lingfu74
  • 2015年07月28日 13:36
  • 555

NOIP2016提高组解题报告

D1T1玩具谜题   模拟 D1T2天天爱跑步   LCA,树链剖分 D1T3换教室  DP,数学期望,最短路 D2T1组合数问题   数学 D2T2蚯蚓   单调队列,模拟 D2T...
  • qwerty1125
  • qwerty1125
  • 2017年09月10日 20:42
  • 276

HDOJ__1058 Humble Numbers 解题报告

Problem Description A number whose only prime factors are 2,3,5 or 7 is called a humble number. T...
  • xxm137164869
  • xxm137164869
  • 2010年08月24日 16:12
  • 885

UVaOJ-10539-Almost Prime Numbers 解题报告

筛素数好题。题意:几乎是素数的数是这样一种数,它不是素数,但是它只有一个素因子。比如:4,8,9等。现在给你一个区间,让你统计区间内几乎是素数的数的个数。        我的解题思路:这个区...
  • JZQT_T
  • JZQT_T
  • 2015年01月21日 14:19
  • 578

算法分析与设计解题报告

解题报告格式:         ①原题中文大意; ②算法思想及解题用到的主要数据结构; ③详细解题思路; ④逐步求精算法描述(含过程及变量说明); ⑤程序注释清单(重要过程的说明); ⑥...
  • u011394079
  • u011394079
  • 2014年09月24日 11:42
  • 260

USACO :Runaround Numbers 解题报告

从M+1开始逐一判断是否是循环数,用数组来维护数的各个位数,可剪枝掉含0的数以及含重复数字的数。   /* ID: xpli1 PROG: runround LANG: C++ */ #...
  • dragonfly_xp
  • dragonfly_xp
  • 2010年05月12日 13:24
  • 166

解题报告:POJ_1338 Ugly Numbers

Description Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence 1, 2...
  • qq_32570675
  • qq_32570675
  • 2016年01月02日 23:23
  • 211

ZQUOJ1398 Fibonacci Numbers解题报告

Fibonacci Numbersmemory limit: 65536KB time limit: 500MSaccept: 22 submit: 29DescriptionA Fibonacci ...
  • eapink
  • eapink
  • 2011年06月01日 12:59
  • 788
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode-Bitwise AND of Numbers Range-解题报告
举报原因:
原因补充:

(最多只允许输入30个字)