File tree Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Original file line number Diff line number Diff line change 1+ package me .ramswaroop .bits ;
2+
3+ /**
4+ * Created by ramswaroop on 30/05/2016.
5+ */
6+ public class BinaryGap {
7+
8+ /**
9+ * A binary gap of a positive integer N is any maximal
10+ * sequence of consecutive zeros that is surrounded by ones
11+ * at both ends in the binary representation of N.
12+ *
13+ * @param n
14+ * @return
15+ */
16+ public static int findBinaryGap (long n ) {
17+ int gap = 0 ;
18+ int maxGap = 0 ;
19+ while (n > 0 ) {
20+ if ((n & 1 ) == 1 ) {
21+ n = n >>> 1 ;
22+ while (n > 0 && (n & 1 ) == 0 ) {
23+ gap ++;
24+ n = n >>> 1 ;
25+ }
26+ if (gap > maxGap ) {
27+ maxGap = gap ;
28+ gap = 0 ;
29+ }
30+ }
31+ n = n >>> 1 ;
32+ }
33+
34+ return maxGap ;
35+ }
36+
37+ public static int findMaxNoOf0sBetweenTwo1s (long n ) {
38+ return findBinaryGap (n );
39+ }
40+
41+ public static void main (String [] args ) {
42+ System .out .println (findBinaryGap (2 ));
43+ System .out .println (findBinaryGap (8 ));
44+ System .out .println (findBinaryGap (9 ));
45+ System .out .println (findBinaryGap (16 ));
46+ System .out .println (findBinaryGap (17 ));
47+ System .out .println (findMaxNoOf0sBetweenTwo1s (121 ));
48+ }
49+ }
You can’t perform that action at this time.
0 commit comments