Loading Now

[STLC++Map]largestElement

STL C++ Map

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

Contact