在 Python 中查找数组中的一个元素,使得元素形成严格递减和递增序列


假设我们有一个正数数组;我们必须检查一个点/项目,直到该项目首先创建严格递减序列,然后是严格递增整数的序列。以下是以下属性:我们必须记住,序列的最小长度必须为 2

此外,我们已经确保递减序列的最后一个值是递增序列的第一个值。

因此,如果输入类似于 {5, 4, 3, 4},则输出将为 3,因为 {5, 4, 3} 严格递减,然后 {3, 4} 严格递增。

为了解决这个问题,我们将遵循以下步骤 -

  • increase := 1, decrease := 1
  • n := 数组大小
  • 对于 i 从 1 到 n,执行
    • 如果 array[i] < array[i-1],则
      • 如果 increase 等于 1,则
        • decrease := decrease + 1
      • 否则,
        • 返回 -1
    • 否则,当 array[i] > array[i-1] 不为零时,则
      • 如果 increase 等于 1,则
        • pt := array[i-1]
      • 如果 decrease >= 2,则
        • increase := increase + 1
      • 否则,
        • 返回 -1
    • 否则,当 array[i] 等于 array[i-1] 时,则
      • 返回 -1
  • 如果 increase >= 2 且 decrease >= 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

更新于: 2020-08-28

574 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告