PROBLEM LINK :
Author : sneha542
Tester : prasoonjain006
Editorialist : sneha542
DIFFICULTY :
Cakewalk
PREREQUISITES :
Arrays
PROBLEM :
Chef has N numbers and he wants to choose one number from these numbers in such a way that the chosen number has occurred at least more than once and is greater than other repeated numbers.
Output 0 if there is No repeating number.
QUICK EXPLANATION :
Find out the greatest number among all the numbers which is repeating.
EXPLANATION :
→ First sort the array in descending order.
→ Now, check if the greatest number is repeating or not. If it is repeating then print it otherwise
check for the next highest number and so on.
→ If there is no repeating number then output 0 in this case.
TIME COMPLEXITY :
Time complexity is O(NlogN)
SOLUTIONS :
Editorialist’s Solution
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t>0) {
int n;
cin>>n;
int arr[n];
// take input
for(int i=0;i<n;i++){
cin>> arr[i];
}
//sort the array in descending order
sort(arr, arr+n, greater<int>());
//check for the first repeated element
if(n==1)
{
cout<< 0 << "\n";
}
else if(n>1) {
for(int i=0;i<n;i++){
if (arr[i]== arr[i+1]){
cout<< arr[i] << "\n";
break;
}
else
cout<< 0<< "\n";
}
}
t--;
}
return 0;
}
Feel Free to share and discuss your approach here.