代码之家  ›  专栏  ›  技术社区  ›  Zakir Hussain

在巨蟒中被雨点击中

  •  -4
  • Zakir Hussain  · 技术社区  · 6 年前
    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))
    

    这次我犯了这个错误 左[I]=最大值(左[I-1],A[I]) 类型错误:“int”对象不可调用 帮助我更正我的代码。

    2 回复  |  直到 6 年前
        1
  •  0
  •   Moberg    6 年前

    1. l left_side
    2. n

    l[0] = ...

    l.append(a[0])
    
        2
  •  0
  •   Hcetipe    6 年前

    r[n-1] = a[n-1]