Find max in struct array
Last Updated :
30 Apr, 2024
Improve
Given a struct array of type Height, find max
struct Height{
int feet;
int inches;
}
Question source : Microsoft Interview Experience Set 127 | (On-Campus for IDC)
The idea is simple, traverse the array, and keep track of max value
value of array element(in inches) = 12*feet + inches
Implementation:
Try it on GfG Practice
// CPP program to return max
// in struct array
#include <climits>
#include <iostream>
using namespace std;
// struct Height
// 1 feet = 12 inches
struct Height {
int feet;
int inches;
};
// return max of the array
int findMax(Height arr[], int n)
{
int mx = INT_MIN;
for (int i = 0; i < n; i++) {
int temp = 12 * (arr[i].feet) + arr[i].inches;
mx = max(mx, temp);
}
return mx;
}
// driver program
int main()
{
// initialize the array
Height arr[] = {
{ 1, 3 }, { 10, 5 }, { 6, 8 }, { 3, 7 }, { 5, 9 }
};
int res = findMax(arr, 5);
cout << "max :: " << res << endl;
return 0;
}
// Java program to return max
// in class array
import java.lang.Integer;
// class Height
// 1 feet = 12 inches
class Height {
int feet;
int inches;
}
public class Main {
// return max of the array
public static int findMax(Height arr[])
{
int mx = Integer.MIN_VALUE;
for (int i = 0; i < arr.length; i++) {
int temp = 12 * (arr[i].feet) + arr[i].inches;
mx = Math.max(mx, temp);
}
return mx;
}
// driver program
public static void main(String[] args)
{
// initialize the array
Height arr[] = { new Height(){ { feet = 1;
inches = 3;
}
}
, new Height() {
{
feet = 10;
inches = 5;
}
}, new Height() {
{
feet = 6;
inches = 8;
}
}, new Height() {
{
feet = 3;
inches = 7;
}
}, new Height() {
{
feet = 5;
inches = 9;
}
}
}
;
int res = findMax(arr);
System.out.println("max :: " + res);
}
}
# Python program to return max
# in list of dictionaries
# Importing the sys module for INT_MIN
import sys
# Dictionary to represent Height
# 1 feet = 12 inches
class Height:
def __init__(self, feet, inches):
self.feet = feet
self.inches = inches
# Function to return max of the list
def findMax(arr):
mx = -sys.maxsize - 1
for i in arr:
temp = 12 * i['feet'] + i['inches']
mx = max(mx, temp)
return mx
# Driver program
if __name__ == "__main__":
# Initialize the list
arr = [
{'feet': 1, 'inches': 3},
{'feet': 10, 'inches': 5},
{'feet': 6, 'inches': 8},
{'feet': 3, 'inches': 7},
{'feet': 5, 'inches': 9}
]
res = findMax(arr)
print("max ::", res)
class Height {
constructor(feet, inches) {
this.feet = feet;
this.inches = inches;
}
}
function findMax(arr) {
let mx = Number.MIN_VALUE;
for (let i = 0; i < arr.length; i++) {
let temp = 12 * arr[i].feet + arr[i].inches;
mx = Math.max(mx, temp);
}
return mx;
}
// Driver program
function main() {
// Initialize the array
const arr = [
new Height(1, 3),
new Height(10, 5),
new Height(6, 8),
new Height(3, 7),
new Height(5, 9)
];
const res = findMax(arr);
console.log("max :: " + res);
}
main();
Output
max :: 125