小顶堆纯手写做法,时间和空间复杂度都很低。将数组的前k个位置作为一个k大小的小顶堆,维持a[0]为这个小顶堆的最小值,然后遍历堆之后的数字与a[0]比较,大于a[0]则交换两值位置并调整堆,遍历完成后则这个小顶堆就是最大的k个值,并且a[0]即为第k大的值。 import java.util.*; public class Solution { public int findKth(int[] a, int n, int K) { // write code here int heapSize = K; getHeap(a, K); ...