AbstractQueuedSynchronizer
AQS 是用来构建锁和同步工具的基本框架。本文主要基于 AQS 作者 Doug Lea 的论文*The java.util.concurrent Synchronizer Framework* 和 JDK 1.8 的文档。
AQS 是用来构建锁和同步工具的基本框架。本文主要基于 AQS 作者 Doug Lea 的论文*The java.util.concurrent Synchronizer Framework* 和 JDK 1.8 的文档。
在面试的时候碰到的问题,总结一下。这类问题有以下几种形式,但本质上是一样:
- 求第 k 个最大的数
- 从一亿个数里找出最大的一百个
- 中位数,即第 n / 2 最大的数
- …
接下来以第一个问题的形式来分析和编码,即 “求第 k 个最大的数”
二叉树的第 i 层最多有$2^{i-1}$个节点
深度为 h 的二叉树最多有$2^h - 1$个节点。定义根节点深度为1。
$n_0$(度为 0 的节点,叶子节点),$n_1$(度为 1 的节点),$n_2$(度为 2 的节点),有 $n_0 = n_2 + 1$
|
|