Equalize the Array Hackerrank Solution
CODE
// Complete the equalizeArray function below. | |
int equalizeArray(vector<int> arr) { | |
unordered_map<int,int>mp; | |
for(int i=0;i<arr.size();i++){ | |
mp[arr[i]]++; | |
} | |
int res=-1; | |
for(auto x:mp){ | |
if(res<x.second){ | |
res=x.second; | |
} | |
} | |
res=arr.size()-res; | |
return res; | |
} |
Given an array of integers, determine the minimum number of elements to delete to leave only elements of equal value.
Example
Delete the elements and leaving . If both twos plus either the or the are deleted, it takes deletions to leave either or . The minimum number of deletions is .
Function Description
Complete the equalizeArray function in the editor below.
equalizeArray has the following parameter(s):
- int arr[n]: an array of integers
Returns
- int: the minimum number of deletions required
Input Format
The first line contains an integer , the number of elements in .
The next line contains space-separated integers .
Constraints
Sample Input
STDIN Function
----- --------
5 arr[] size n = 5
3 3 2 1 3 arr = [3, 3, 2, 1, 3]
Sample Output
2
Explanation
Delete and to leave . This is minimal. The only other options are to delete elements to get an array of either or .