Question: 
Write a python function to find minimum adjacent swaps required to sort binary array.


Model's Code:
def find_Min_Swaps(arr, n):
    count_ones = arr.count(1)
    max_ones_window = sum(arr[:count_ones])
    max_ones_count = max_ones_window

    for i in range(count_ones, n):
        max_ones_window += arr[i] - arr[i - count_ones]
        max_ones_count = max(max_ones_count, max_ones_window)

    return count_ones - max_ones_count



Sample Correct Code:
def find_Min_Swaps(arr,n) : 
    noOfZeroes = [0] * n 
    count = 0 
    noOfZeroes[n - 1] = 1 - arr[n - 1] 
    for i in range(n-2,-1,-1) : 
        noOfZeroes[i] = noOfZeroes[i + 1] 
        if (arr[i] == 0) : 
            noOfZeroes[i] = noOfZeroes[i] + 1
    for i in range(0,n) : 
        if (arr[i] == 1) : 
            count = count + noOfZeroes[i] 
    return count 


Asserts:
assert find_Min_Swaps([1,0,1,0],4) == 3
assert find_Min_Swaps([0,1,0],3) == 1
assert find_Min_Swaps([0,0,1,1,0],5) == 2


Tests:
Test 1 of 3: FAIL: AssertionError()

Test 856 of 974: 658/856 (76.86915887850468%): failed