假设我们有一个正数数组;我们必须检查一个点/项目,直到哪个项目先创建一个严格减少的序列,然后再创建一系列严格增加的整数。这些是以下属性:我们必须记住,序列必须具有最小长度2
另外,我们已经注意了递减序列的最后一个值是递增序列的第一个值。
因此,如果输入类似于{5,4,3,4},则输出将为3,因为{5,4,3}严格减少,而{3,4}严格增加。
为了解决这个问题,我们将遵循以下步骤-
增加:= 1,减少:= 1
n:=数组大小
对于1到n范围内的i,执行
返回-1
如果增加等于1,则
如果减少> = 2,则
除此以外,
pt:= array [i-1]
增加:=增加+ 1
返回-1
如果增加等于1,则
除此以外,
减少:=减少+ 1
返回-1
如果array [i] <array [i-1],则
否则,当array [i]> array [i-1]为非零时,
否则,当array [i]与array [i-1]相同时,则
如果增加> = 2而减少> = 2,则
返回pt
除此以外,
返回-1
让我们看下面的实现以更好地理解-
def search_element(array): increase = 1 decrease = 1 n = len(array) for i in range(1, n): if(array[i] < array[i-1]): if increase == 1: decrease = decrease + 1 else: return -1 elif(array[i] > array[i-1]): if increase == 1: pt = array[i-1] if decrease >= 2: increase = increase + 1 else: return -1 elif(array[i] == array[i-1]): return -1 if(increase >= 2 and decrease >= 2): return pt else: return -1 array = [5,4,3,4] element = search_element(array) print(element)
[5,4,3,4]
输出结果
3