LeetCode上面有些题目需要使用一些特殊的算法来解决,尤其是题目附带有特别的时间复杂度或空间复杂度时。需要使用这类算法来解决的LeetCode问题数量是不多的,因此,我把它们称之为小众算法。它们很多都是早已被提出的而且比较成熟的算法,如果你之前完全不知道,临场发挥其实是很难想到的(要知道很多提出这些算法的人后来不是评上了院士,就是已经获得图领奖了)。我们在前一篇文章中已经讨论过Index sorting和Vote算法,本文将解释Quick select和Morris traversal算法以及运用它们可以解决的题目。除了这些算法以外,需要提醒读者的是,在其它主题的文章中也包含有一些特殊算法的介绍,例如:
- KMP算法——深入理解字符串处理:从Leetcode实践出发
- 蓄水池采样算法——深入理解随机算法:从LeetCode实践出发
- 拓扑排序算法—