导航网站前端模板,网站建设的活动方案,网络营销策划的具体流程是,大连甘井子区区号堆排序
前言 面试中著名的 TopK 排序#xff1b;常见的解法有冒泡排序、堆排序#xff1b;更深入的思路可以参考#xff1a;拜托#xff0c;面试别再问我TopK了#xff01;#xff01;#xff01;使用了堆排序的算法#xff0c;关于堆可以参考#xff1a;堆数据结构的…堆排序
前言 面试中著名的 TopK 排序常见的解法有冒泡排序、堆排序更深入的思路可以参考拜托面试别再问我TopK了使用了堆排序的算法关于堆可以参考堆数据结构的C实现思路 使用一个 size k 小顶堆之后的元素如果大于堆顶则将堆顶 pop 后将此元素入堆遍历完成后堆顶即为 TopK 元素使用了 stl 的优先队列数据结构默认是大顶堆小顶堆的构造为 std::priority_queueint, std::vectorint, std::greaterint
class Solution {
public:int findKthLargest(vectorint nums, int k) {std::priority_queueint, std::vectorint, std::greaterint pq;int size nums.size();for (int i 0; i size; i) {if (i k) {pq.push(nums[i]);} else {if (nums[i] pq.top()) {pq.pop();pq.push(nums[i]);}}}return pq.top();}
};