在数组中查找元素,以使元素在Python中形成严格减少和增加的序列

假设我们有一个正数数组;我们必须检查一个点/项目,直到哪个项目先创建一个严格减少的序列,然后再创建一系列严格增加的整数。这些是以下属性:我们必须记住,序列必须具有最小长度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
    猜你喜欢