array equilibrium index code example

Example: Find equilibrium index of an array

def equilibriumIndex(A):
 
    # `total` stores the sum of all elements in the list
    total = sum(A)
 
    # `right` stores the sum of elements of sublist `A[i+1…n)`
    right = 0
 
    # maintain a list of indices
    indices = []
 
    # traverse the list from right to left
    for i in reversed(range(len(A))):
 
        ''' `i` is an equilibrium index if the sum of elements of sublist
            `A[0…i-1]` is equal to the sum of elements of the sublist
            A[i+1…n), i.e., (A[0] + A[1] + … + A[i-1]) =
            (A[i+1] + A[i+2] + … + A[n-1]) '''
 
        # sum of elements of the left sublist `A[0…i-1]` is
        # (total - (A[i] + right))
        if right == total - (A[i] + right):
            indices.append(i)
 
        # new right is `A[i] + (A[i+1] + A[i+2] + … + A[n-1])`
        right += A[i]
 
    print("Equilibrium Index found at", indices)

Tags:

Misc Example