Find index of 0 to be replaced to get maximum length sequence of continuous ones code example

Example: Find index of 0 to be replaced to get maximum length sequence of continuous ones

def findIndexofZero(A):
 
    max_count = 0           # stores maximum number of 1's (including 0)
    max_index = -1          # stores index of 0 to be replaced
 
    prev_zero_index = -1    # stores index of previous zero
    count = 0                # stores current count of zeros
 
    # consider each index `i` in the list
    for i in range(len(A)):
 
        # if the current element is 1
        if A[i] == 1:
            count = count + 1
 
        else:
            # if the current element is 0
            # reset count to 1 + number of ones to the left of current 0
            count = i - prev_zero_index
 
            # update `prev_zero_index` to the current index
            prev_zero_index = i
 
        # update maximum count and index of 0 to be replaced if required
        if count > max_count:
            max_count = count
            max_index = prev_zero_index
 
    # return index of 0 to be replaced or -1 if the list contains all 1's
    return max_index

Tags:

Misc Example