题目链接:https://codeforces.com/problemset/problem/1454/B
题目大意:找出序列中只出现一次数字,并且要求该数字是序列当中最小的数,输出该编号,如果没有符合条件的数字,输出-1
用map存,second用pair存两个值:出现次数,该数的编号
主要代码:
int main()
{
int t;
cin >> t;
while (t--)
{
h.clear();//每组案例需要先清空
int x;
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> x;
h[x].first++;
h[x].second = i;
}
bool flag = true;
for (auto i : h)
if (i.second.first == 1)
{
cout << i.second.second << endl;
flag = false;
break;
}
if (flag)
puts("-1");
}
return 0;
}