堆与最大(小)K问题 发表于 2021-08-14 堆堆,即完全二叉树,按左右节点顺序填充,可以不完整,但必须按顺序 比如 [1, 2, 3], [1, 2, 3, 4, 5] 最小堆与最大堆: 所有节点的左右子节点都大于等于当前节点的为最小堆,反之,所有节点的左右子节点值都小于等于当前节点值为最大堆。 最小堆: 最大堆: 最值问题比如最大的第K个元素 新建大小为K的最小堆,遍历完成后,返回堆顶的元素即位最大的第K个元素(通俗掉就是第K大的元素)。 12345678Q:输入: [3,2,1,5,6,4] 和 k = 2输出: 5A:最小堆,堆大小为k,返回heap.pop()[3,2,1,5,6,4]. => [5, 6] => 5