(13分)设有一个长度为n的整数数组A,定义“峰”为数组中满足A[i] > A[i-1]且A[i] > A[i+1]的元素(其中0 < i < n-1),定义“谷”为数组中满足A[i] < A[i-1]且A[i] < A[i+1]的元素(其中0 < i < n-1)。数组的首尾元素既不是峰也不是谷。请设计一个高效算法,找出数组中所有“峰谷对”(i,j)(其中i < j),使得A[i]是峰、A[j]是谷,且A[i] - A[j]的值最大。若不存在这样的峰谷对,返回0。
要求:
(1) 给出算法的基本设计思想;(4分)
(2) 根据设计思想,采用C或C++语言描述算法,关键之处给出注释;(7分)
(3) 说明你所设计算法的时间复杂度和空间复杂度。(2分)
登录后提交答案
暂无评论,来抢沙发