Given a range [L, R], the task is to find a pair (X, Y), not necessarily distinct. Find the maximum possible value of the bitwise AND of the chosen integers.
Examples:
Input: L = 3, R = 7
Output: 7
Explanation:
In all the possible pairs, pair (7, 7) gives the maximum value for bitwise AND.
Input: L = 54, R = 55
Output: 55
Explanation:
In all the possible pairs, pair (55, 55) gives the maximum value for bitwise AND.
Naive Approach: To solve the problem mentioned above the naive method is to iterate from L to R and check the bitwise AND for every possible pair and print the maximum value in the end.
Time Complexity: O(N2)
Efficient Approach:
To optimize the above method we have to observe that here we have to integers L and R and we have to select two integers from the interval [L, R] so that their bitwise AND should be maximum. Bitwise AND of any two numbers between L and R will be always less than or equal to R only. So if we have to select two integers from the interval, we can choose the integers to be R and that’s the only way to maximize the bitwise AND.
Below is the implementation of above approach:
// C implementation to find the // Maximum Bitwise AND pair (X, Y) // from given range such that // X and Y can be same #include <stdio.h> // Function to return the // maximum bitwise AND int maximumAND( int L, int R)
{ return R;
} // Driver code int main()
{ int l = 3;
int r = 7;
printf ( "%d" , maximumAND(l, r));
return 0;
} |
// C++ implementation to find the // Maximum Bitwise AND pair (X, Y) // from given range such that // X and Y can be same #include <bits/stdc++.h> using namespace std;
// Function to return the // maximum bitwise AND int maximumAND( int L, int R)
{ return R;
} // Driver code int main()
{ int l = 3;
int r = 7;
cout << maximumAND(l, r);
return 0;
} |
// Java implementation to find the // Maximum Bitwise AND pair (X, Y) // from given range such that // X and Y can be same class GFG {
// Function to return the
// maximum bitwise AND
static int maximumAND( int L, int R)
{
return R;
}
// Driver code
public static void main(String[] args)
{
int l = 3 ;
int r = 7 ;
System.out.print(maximumAND(l, r));
}
} |
# Python3 implementation to find the # Maximum Bitwise AND pair (X, Y) # from given range such that # X and Y can be same # Function to return the # maximum bitwise AND def maximumAND(L, R):
return R
# Driver code if __name__ = = '__main__' :
l = 3
r = 7
print (maximumAND(l, r))
|
// C# implementation to find the // maximum Bitwise AND pair (X, Y) // from given range such that // X and Y can be same using System;
class GFG{
// Function to return the // maximum bitwise AND static int maximumAND( int L, int R)
{ return R;
} // Driver code public static void Main(String[] args)
{ int l = 3;
int r = 7;
Console.Write(maximumAND(l, r));
} } // This code is contributed by amal kumar choubey |
<script> // JavaScript implementation to find the // Maximum Bitwise AND pair (X, Y) // from given range such that // X and Y can be same // Function to return the // maximum bitwise AND
function maximumAND(L, R)
{
return R;
}
// Driver Code let l = 3;
let r = 7;
document.write(maximumAND(l, r));
</script> |
7
Time Complexity: O(1)