题目描述给定一个长度为 n 的整数数组 a1a2…an。请你找到数组中只出现过一次的数当中最小的那个数。输出找到的数的索引编号。a1 的索引编号为 1a2 的索引编号为 2…an 的索引编号为 n。输入第一行包含整数 T表示共有 T 组测试数据。每组数据第一行包含整数 n。第二行包含 n 个整数 a1a2…an。输出每组数据输出一行结果即满足条件的数的索引编号如果不存在满足条件的数则输出 −1。样
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
int findUniqueIndex(int n, vector<int>& arr) {
unordered_map<int, int> count;
for (int i = 0; i < n; i++) {
count[arr[i]]++;
}
for (int i = 0; i < n; i++) {
if (count[arr[i]] == 1) {
return i + 1;
}
}
return -1;
}
int main() {
int T;
cin >> T;
while (T--) {
int n;
cin >> n;
vector<int> arr(n);
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
int index = findUniqueIndex(n, arr);
cout << index << endl;
}
return 0;
}
``
原文地址: https://www.cveoy.top/t/topic/iDRw 著作权归作者所有。请勿转载和采集!