Maximum Bitwise AND pair (X, Y) from given range such that X and Y can be same
Last Updated :
05 May, 2021
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
#include <stdio.h>
int maximumAND( int L, int R)
{
return R;
}
int main()
{
int l = 3;
int r = 7;
printf ( "%d" , maximumAND(l, r));
return 0;
}
|
C++
#include <bits/stdc++.h>
using namespace std;
int maximumAND( int L, int R)
{
return R;
}
int main()
{
int l = 3;
int r = 7;
cout << maximumAND(l, r);
return 0;
}
|
Java
class GFG {
static int maximumAND( int L, int R)
{
return R;
}
public static void main(String[] args)
{
int l = 3 ;
int r = 7 ;
System.out.print(maximumAND(l, r));
}
}
|
Python3
def maximumAND(L, R):
return R
if __name__ = = '__main__' :
l = 3
r = 7
print (maximumAND(l, r))
|
C#
using System;
class GFG{
static int maximumAND( int L, int R)
{
return R;
}
public static void Main(String[] args)
{
int l = 3;
int r = 7;
Console.Write(maximumAND(l, r));
}
}
|
Javascript
<script>
function maximumAND(L, R)
{
return R;
}
let l = 3;
let r = 7;
document.write(maximumAND(l, r));
</script>
|
Time Complexity: O(1)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...