Учитывая массив целых чисел nums и целое число k, вернуть самый большой kth элемент в массиве.
Обратите внимание, что это kth самый большой элемент в отсортированном порядке, а не kth отдельный элемент.
Можете ли вы решить ее без сортировки?
Пример 1:
Input: nums = [3,2,1,5,6,4], k = 2 Output: 5
Пример 2:
Input: nums = [3,2,3,1,2,4,5,5,6], k = 4 Output: 4
Ограничения:
1 <= k <= nums.length <= 105-104 <= nums[i] <= 104
Два момента, о которых нужно позаботиться…
kthсамый большой элемент в отсортированном порядке, а неkthотдельный элемент.- решить его без сортировки
class Solution {
public:
int findKthLargest(vector<int>& nums, int k) {
priority_queue<int> pq;
for(int i=0;i<nums.size();i++){
pq.push(nums[i]);
}
int x=-1;
while(k--){
x=pq.top();
pq.pop();
}
return x;
}
};

Это очень простой вопрос… используйте очередь с приоритетом (максимальная куча) вставьте все элементы, а затем удалите k элементов из очереди с наивысшим приоритетом (pq) …вашим ответом будет удаление последнего элемента.
Примечание. - Если запрашивается отдельный, используйте Set
Спасибо . Продолжай учиться :)