vector<int> getSecondOrderElements(int n, vector<int> a) {
// Write your code here.
int smallest = INT_MAX, secondSmallest = INT_MAX;
int largest = INT_MIN, secondLargest = INT_MIN;
//largest , smallest
for(int i = 0; i < n;i++){
smallest = min(smallest,a[i]);
largest = max(largest,a[i]);
}
//secsmallestv , seclargest
for(int i = 0;i < n; i++){
if(a[i] <secondSmallest && a[i] != smallest){
secondSmallest = a[i];
}
if(a[i] > secondLargest && a[i] != largest){
secondLargest = a[i];
}
}
return {secondLargest,secondSmallest};
}
/*
Test Case
//smallesst , Largest
‘a’ = [1, 2, 3, 4, 5] n-1
samllest 1
largest 5
// SecSmallest , secLargest
stp 1 - 1 < INT_MAX & secSmll is INT_MAX
stp 2 - 2 < INT_MAX & 2 != 1 SecSmall = 2
return secSamlllest
stp 1 - 1 < INT_MIN & 1 != 5 SecLar = 1
stp 2 - 2 < 1 & 2 != 5 seclar = 2
stp 3 - 3 < 2 & 3!=5 Secalr = 3
stp 4 - 4 < 3 & 4 != 5 secLar = 4
stp 5 - 5 < 4 & 5!=5
return seclargest is 4
Edge Case
int arr{}
if(arr.empty()){
cout<<"Error : Array is empty "<<endl;
return INT_MIN;
}
int arr{10,10,10,10}
Seclar and secsamll - 10 ,10
*/