Top K问题的解决方案
问题定义
Top K 问题指的是从一组无序数据中找到前 K 大(也可以是前 K 小)的数。这个问题是十分经典的问题,不论在面试中还是实际开发中,都非常典型。
解决方案
对于 TOP K 问题,常见的解决方案有以下三种:
排序
堆
快速选择
下面以剑指Offer 40.最小的K个数为例,实现上述的解决方案。
排序
排序是最容易想到的方法,将数据排序之后,取出最小的K个数即为所求。代码如下:
public int[] getLeastNumbers(int[] arr, int k) {
Array
原创
2020-11-10 16:32:34 ·
702 阅读 ·
0 评论