logo

高效地输出无序数组中最大的 k 个元素。

Write a program that prints the k largest elements in an unordered array efficiently.

题目类型: 技术面试题

这是一道技术面试题,常见于澳洲IT公司面试中。

难度: medium

分类: Algorithms, Data Structures

标签: K Largest Elements, Min Heap, Quickselect

目标公司: Microsoft

参考答案摘要

答案 面试中常见三种思路:①用最小堆(size=k)遍历数组,堆顶维护当前第 k 大,遇到更大元素就替换并调整,时间复杂度 O(n log k)、空间 O(k),是最通用的解;②如果只需输出、不要求排序,最小堆即可;若要有序输出,可最后对堆元素再排序;③若允许修改数组且追求更优均摊,可用 Quickselect 找到第 k 大阈值再过滤输出,平均 O(n) 但最坏 O(n^2)。回答时说明为何选最...

本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。

← 返回面试题库

高效地输出无序数组中最大的 k 个元素。

Mediumalgorithmsheaptime-complexity

想查看完整答案?

登录匠人学院学习中心,获取 STAR 格式回答和详细技术解析

前往学习中心查看答案