
[STLC++Map]largestElement
Bài tập.
Cho một dãy gồm các số nguyên, hãy đơn ra số thỏa mãn là số lớn nhất trong những số có tần số bé nhất.
Ví dụ:
- Với
arr = [2,2,4,4,7,7,7]
thìlargestElement(arr) = 4
. - Với
arr = [1,3,4,5,5]
thìlargestElement(arr) = 4
.
Hướng dẫn.
Khởi tạo một map<int, int> với khóa là các chữ số xuất hiện trong arr được sắp xếp tăng dần, ánh xạ của nó là tần số của nó. Cuối cùng chỉ cần duyệt từ đầu đến cuối dãy và đưa ra số có tần số nhỏ nhất.
Code mẫu:
int largestElement(std::vector<int> arr)
{
map <int, int> cnt;
for (auto x : arr)
cnt[x]++;
int ans = -1;
int fre = INT_MAX;
for (auto x : cnt)
{
if (x.second <= fre)
{
fre = x.second;
ans = x.first;
}
}
return ans;
}
Post Comment