本文介绍: 原题:力扣215.之间用快速排序做过这道题,这次使用堆查找。找最大用小堆,找最小用大堆,找中间用两个堆。这道题用小堆,新元素插入的时候就替换根元素,然后重新构造小堆,构造完成后的根元素就是第 K 大的元素,不论要处理的元素有多少以及是否固定,小堆的长度都固定为 K ,且根元素就是第 K 大的元素。只有比根元素大的才让进入堆。这里使用 PriorityQueue 优先队列。
1.在数组中找第 K 大的元素
原题:力扣215.
之间用快速排序做过这道题,这次使用堆查找。
找最大用小堆,找最小用大堆,找中间用两个堆。
这道题用小堆,新元素插入的时候就替换根元素,然后重新构造小堆,构造完成后的根元素就是第 K 大的元素,不论要处理的元素有多少以及是否固定,小堆的长度都固定为 K ,且根元素就是第 K 大的元素。
只有比根元素大的才让进入堆。
这里使用 PriorityQueue 优先队列。
2.合并 K 个排序链表
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。