Python. Ускорить время выполнения скрипта
Имеется следующая задача:
скрипт получает число - количество элементов
скрипт получает список натуральных чисел - список элементов
Скрипт должен уравнять все числа, увеличивая каждое из них (если это необходимо) на 1, и затем вывести количество проходов по списку. Если уравнять числа невозможно, скрипт выводит -1.
Пример:
5
1 1 5 5 5
Ответ:
4
4 раза скрипт проходит по списку чисел, увеличивая первые два числа на 1, пока все они не станут равны 5.
Вопрос: как можно максимально ускорить работу скрипта?
from datetime import datetime
# num of elements
n = int(input())
# values of elements
list_or_r = list(map(int, input().split()))
time_start = datetime.now()
list_or_r = sorted(list_or_r)
max_n = max(list_or_r)
new_list = []
for el in list_or_r:
if el < max_n:
new_list.append(el)
# are all elements equil
def if_equil(new_list):
return len(set(new_list)) <= 1
# increase every element
def count(new_list, max_n):
counter = 0
while new_list[0] < max_n:
for i in range(len(new_list)):
new_list[i] += 1
counter += 1
return counter
if if_equil(new_list):
print(count(new_list, max_n))
else:
print(-1)
time_finish = datetime.now()
time = time_finish - time_start
print('Ready for {}'.format(time))