学术

Category

单调队列

给定一个数组,设置一个窗口长度,需要求出每个窗口内的最大值或最小值,暴力做法将会是数组长度乘以窗口长度的时间复杂度。如果使用单调队列,将会是数组长度的线性时间复杂度。本文将对单调队列有一个具体的阐述...

单调栈

给定一个数组,需要找到每个元素右边第一个比它大或者比它小的元素,暴力做法将会是平方的时间复杂度。如果利用单调栈,就能优化到线性的时间复杂度。本文将会对单调栈做具体的介绍,希望能让被单调栈困惑的读者豁...

最小圆覆盖

给定一个点集,有无数个圆可以对其进行覆盖,如何找到半径最小的那个圆?如果暴力求解,将会是四次方的时间复杂度。本文将介绍主流的通过随机增量实现的在期望上具有线性的时间复杂度的最小圆覆盖算法,阐述算法流...