在 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
- 如果 increase 等于 1,则
- 否则,当 array[i] > array[i-1] 不为零时,则
- 如果 increase 等于 1,则
- pt := array[i-1]
- 如果 decrease >= 2,则
- increase := increase + 1
- 否则,
- 返回 -1
- 如果 increase 等于 1,则
- 否则,当 array[i] 等于 array[i-1] 时,则
- 返回 -1
- 如果 array[i] < array[i-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
广告