Skip to main content

Middle of Three

Problem​

Given three distinct numbers A, B and C. Find the number with value in middle (Try to do it with minimum comparisons).

Examples:​

Example 1:

Input:
A = 978, B = 518, C = 300
Output:
518
Explanation:
Since 518>300 and 518<978, so 518 is the middle element.

Example 2:

Input:
A = 162, B = 934, C = 200
Output:
200
Exaplanation:
Since 200>162 && 200<934, So, 200 is the middle element.

Your task:​

You don't need to read input or print anything.Your task is to complete the function middle() which takes three integers A,B and C as input parameters and returns the number which has middle value.

  • Expected Time Complexity: O(1)O(1)
  • Expected Auxiliary Space: O(1)O(1)

Constraints:​

  • 1<=A,B,C<=1091<=A,B,C<=10^9

A,B,C are distinct.

Solution​

Python​

def middle(self,A,B,C):
if A > B:
if A > C:
if B > C:
return B
else:
return C
else:
return A
else:
if B > C:
if A > C:
return A
else:
return C
else:
return B

Java​

int middle(int A, int B, int C){
if (A > B) {
if (A > C) {
if (B > C) {
return B;
} else {
return C;
}
} else {
return A;
}
}
else {
if (B > C) {
if (A > C) {e
return A;
}
else {
return C;
}
}
else {
return B;
}
}
}

C++​

int middle(int A, int B, int C){
if (A > B) {
if (A > C) {
if (B > C) {
return B;
} else {
return C;
}
}
else {
return A;
}
}
else {
if (B > C) {
if (A > C) {
return A;
}
else {
return C;
}
}
else {
return B;
}
}
}

C​

int middle(int A, int B, int C){
if (A > B) {
if (A > C) {
if (B > C) {
return B;
} else {
return C;
}
}
else {
return A;
}
}
else {
if (B > C) {
if (A > C) {
return A;
}
else {
return C;
}
}
else {
return B;
}
}
}
  • Time Complexity: O(1)O(1)
  • Auxiliary Space: O(1)O(1)