В настоящее время я занимаюсь проблемой структуры данных, и у меня есть вопрос, в котором я должен найти k-й по величине элемент в массиве.реальная проблема здесь: https://www.geeksforgeeks.org/kth-smallestlargest-element-unsorted-array/.
я сделал этот вопрос двумя разными способами, используя кучу, а второй использует карту.
мое решение с помощью карты.
int t;
cin>>t;
while(--t>=0){
int n,k;
cin>>n;
vector<int> A(n);
for(int i=0;i<n;i++){
cin>>A[i];
}
cin>>k;
map<int,int> m;
for(int i=0;i<n;i++){
m[A[i]]++;
}
auto it=m.begin();
for(int i=1;i<=k-1;i++){
it++;
}
cout<<it->first<<endl;
но мое решение для карты дает превышение лимита времени.по моему мнению, решение для карты также имеет временную сложность (n + klog (n)), такую же, как решение для кучи.так почему решение карты дает TLE?