題目:給你一串數字,然後查詢數字v第k次出現的位置。
分析:數據結構。利用一個hash表對應每個數字,表中每個元素是一個bst記錄每次出現的位置。
利用map和vector直接處理即可。
說明:明天又要回家了╮(╯▽╰)╭。
#include <iostream>
#include <map>
#include <vector>
using namespace std;
map <int, vector<int> > Map;
int main()
{
int n, m, k ,v;
while (cin >> n >> m) {
Map.clear();
for (int i = 0; i < n; ++ i) {
cin >> v;
Map[v].push_back(i+1);
}
for (int i = 0; i < m; ++ i) {
cin >> k >> v;
if (Map[v].size() < k)
cout << 0 << endl;
else cout << Map[v][k-1] << endl;
}
}
return 0;
}