摘要: 一、问题描述 在一维数组(非有序状态)中找出一个元素pivot,使得其左边的元素均小于等于它,右边的元素均大于等于它,要求线性时间复杂度的算法. 二、算法分析 首先从左往右扫描整个数组,求出非递减序列,可以用布尔数组标记。然后在从右往左扫描,记录扫描过程中的最小值rightMin,在非递减序列序列中 阅读全文
posted @ 2017-09-24 12:23 Qcer 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 一、问题描述 给定一数组ary,元素两两组合,以min{ary[i],ary[j]}为高,以跨度(j-i)为宽可组成一个容器,求所有这样的容器的最大面积maxVolume。 二、算法分析 以数组ary为例:int[] ary = {3,2,6,8,1,7};如果从蛮力法的角度来看。相当于从以上6个元 阅读全文
posted @ 2017-09-24 11:00 Qcer 阅读(808) 评论(0) 推荐(0) 编辑
摘要: 问题一:求sum值 描述:给定一有序序列ary和sum值,求序列中是否存在两元素e1和e2,其和刚好为sum。 算法思想:这是典型的两指针的用法。i指针从头部开始,j指针从尾部开始,相向移动,本质向讲,在移动过程中比较ary[i]+ary[j]与sum的大小,达到逐步排除元素的过程,缩短查找范围。最 阅读全文
posted @ 2017-09-24 00:27 Qcer 阅读(681) 评论(0) 推荐(0) 编辑