在Python中找到所有元素都小于它的元素,然后在所有元素中都大于它的元素
假设我们有一个数组,我们必须找到一个元素,该元素之前的所有元素均小于该元素,之后的所有元素均大于该元素。最后,返回元素的索引,如果没有这样的元素,则返回-1。
因此,如果输入类似于A-[6、2、5、4、7、9、11、8、10],那么输出将为4。
为了解决这个问题,我们将遵循以下步骤-
n:= arr的大小
maximum_left:=大小为n的数组
maximum_left [0]:=-无穷大
对于1到n范围内的i,执行
maximum_left [i]:= maximum_left [i-1],arr [i-1]的最大值
minimum_right:=无穷大
对于范围在n-1到-1的i,减1,
返回-1
还给我
如果maximum_left [i] <arr [i]和minimum_right> arr [i],则
minimum_right:= Minimum_right的最小值,arr [i]
例
让我们看下面的实现以更好地理解-
def get_element(arr):n = len(arr)
maximum_left = [None] * n
maximum_left[0] = float('-inf')
for i in range(1, n):
maximum_left[i] = max(maximum_left[i-1], arr[i-1])
minimum_right = float('inf')
for i in range(n-1, -1, -1):
if maximum_left[i] < arr[i] and minimum_right > arr[i]:
return i
minimum_right = min(minimum_right, arr[i])
return -1
arr = [6, 2, 5, 4, 7, 9, 11, 8, 10]
print(get_element(arr))
输入值
[6, 2, 5, 4, 7, 9, 11, 8, 10]
输出结果
4
以上是 在Python中找到所有元素都小于它的元素,然后在所有元素中都大于它的元素 的全部内容, 来源链接: utcz.com/z/322351.html