在一个int数组里查找出所有这样的数,它大于等于左侧所有数,小于等于右侧所有数。
这题很直观的一个算法是,挨个的查找各个元素是否满足条件,算法的复杂度是O(n^2),太过复杂。
但如果我们在从左到右扫描数组的时候,能够维护一个candidate的数组, 该数组的元素满足: 到目前为止,这些元素都大于等于它前面的元素,而小于等于到目前为止扫描到的它右边的所有元素。 容易证明, candidate数组中的元素是按照非递减顺序排列的,即对任意的i
当我们扫描到一个小的元素的时候,
原创
2014-09-11 14:56:24 ·
1159 阅读 ·
0 评论