a = [3,0,0,2,0,4] #input
l = [] #left side
r = [] #right side
sum = 0 #output
l[0] = a[0] #loading a[0] into l[0]
for i in range(len(a)): #finding left tallest
l[i] = max(a[i],l[i-1]) #finding maximum and adding into left list
r[n-1] = a[n-1] # loading the elements from last into right list
for i in range(len(n-2)): #finding right tallest
r[i] = max(a[i],l[i+1]) #finding maximum and adding into right list
for i in range(0,len(n)):
sum = sum + (min(l[i],r[i])-a[i]*1) #sum of inputs
print(sum)
Ожидается выходная сумма = 10
3x2 + 1x1 + 1x3 = 10
обновлен код предыдущего.
def findwater(a,n):
left = [0]*n
right = [0]*n
sum = 0
left[0] = a[0]
for i in range(1,n):
left[i] = max(left[i-1],a[i])
right[n-1] = a[n-1]
for i in range((n-2),-1,-1):
right[i] = max(right[i+1],a[i])
for i in range(0,n):
sum = sum + (min(left[i],right[i])-a[i]*1)
return sum
a = [3,0,0,2,0,4]
n = len(a)
print(findwater(a,n))
На этот раз я получаю эту ошибку left [i] = max (left [i-1], a [i])
TypeError: объект 'int' не может быть вызван Помогите мне исправить мой код.