C/C++ 一个算法题,我用各种方法都超时了

各种方法了 各种容器我都用上了
但是依旧提交 一直超时

img


之前有人 用哈希表 ,我现在对那个还不是很熟 , 知道,但不知用什么思路

#include <iostream>
#include <limits>
#include <unordered_map>

int main()
{
    int n;
    std::cin >> n;
    int min_a = 0;
    int min_dist = std::numeric_limits<int>::max();
    std::unordered_map<int, int> map;
    for (int i = 0; i < n; i++)
    {
        int a;
        std::cin >> a;
        auto itr = map.find(a);
        if (itr != map.end())
        {
            int d = i - itr->second;
            if (d < min_dist)
            {
                min_dist = d;
                min_a = a;
            }
        }
        map[a] = i;
    }
    if (min_dist == std::numeric_limits<int>::max())
        std::cout << "No";
    else
        std::cout << min_a;
    return 0;
}