Тема: Знайти глибину Озера
Суть завдання
В уявному двовимірному світі знаходиться деякий гірський масив. Рельєф цього гірського масиву задано набором висот над рівнем моря: {h1,h2,..., hn}. Після тривалих опадів долини між горами наповнилися водою до найбільшого можливого рівня. Описану ситуацію зображено https://ibb.co/XDc4RHS
Написати програму, яка знаходить глибину найглибшого озера. Допустима складність алгоритму (по пам’яті і по часу) -O(n). Для прикладу, що зображено на шуканий результат - 6.
import numpy as np
import matplotlib.pyplot as plt
arr = [1,5,1,7,1,6,2]
n=len(arr)
deep = 0
for i in range(0,n-1):
tem_max = 0
if(arr[i] > arr[i+1]):
tem_max = arr[i]
for j in range(i+1,n):
j_t=arr[j]
if (tem_max - arr[j] > deep and arr[j] <= tem_max):
deep = tem_max - arr[j]
print(deep)
x_t = np.arange(0, n, 1)
plt.grid(linestyle='-',c='black')
plt.plot(x_t, arr)
plt.show()
Логіка така що знаходить першу максимальну висоту потім до наступної більшої або такої ж вершини шукає максимальну глибину.
але для простих ламаних воно не до кінця вірно працює.
arr = [1,2,5,6,1,2,2,3,0,1,5,6,7,5,5,7,8,8,2]
для цих даних воно виконується правильно.
Допоможіть оптимізувати і зробити до кінця правильно