K-th 问题

在面试的时候碰到的问题,总结一下。这类问题有以下几种形式,但本质上是一样:

接下来以第一个问题的形式来分析和编码,即 “求第 k 个最大的数”

数据结构-二叉树

  • 二叉树的第 i 层最多有$2^{i-1}$个节点

  • 深度为 h 的二叉树最多有$2^h - 1$个节点。定义根节点深度为1。

  • $n_0$(度为 0 的节点,叶子节点),$n_1$(度为 1 的节点),$n_2$(度为 2 的节点),有 $n_0 = n_2 + 1$

1
2
3
n0+n1+n2-1 = 0*n0+1*n1+2*n2

n0 = n2+1