解题思路:
从最后开始遍历,用map记录每个数出现的次数,再定义一个num记录遍历的次数,要是没超过1,次数加一,超过就结束循环,输出数组长度减去num即可
下面是c++代码:
#include<iostream>
#include<map>
using namespace std;
int main()
{
int n, m;
cin >> n;
while (n--) {
int num = 0;
cin >> m;
map<int, int> mp;
int* arr = new int[m];
for (int i = 0; i < m; i++) {
cin >> arr[i];
}
for (int i = m - 1; i >= 0; i--) {
if (mp[arr[i]] == 0) {
mp[arr[i]]++;
num++;
}
else {
break;
}
}
cout << m - num << endl;
}
return 0;
}