LeetCode 题解:剑指 Offer 40. 最小的 k 个数,快速排序,JavaScript,详细注释
原题连接:https://leetcode-cn.com/problems/zui-xiao-de-kge-shu-lcof/
解题思路:
该题没有要求结果需要是排序的,因此可以利用快速排序的思想。
快速排序会不断地将数组以某个值为中心分为两半,比它的小在左边,比它大的在右边。对于该题,我们只需要将k个元素移动到数组前半部分即可。
可以直接套用快速排序的代码模板,在递归的时候,只需要下探到k所在的一侧,就可以加快排序的过程。
完成排序后,数组的前k个元素就是结果,直接返回即可。
版权声明: 本文为 InfoQ 作者【Lee Chen】的原创文章。
原文链接:【http://xie.infoq.cn/article/a8d6e4a44e6923c667ec0e940】。文章转载请联系作者。
评论