Нужно оптимизировать код транспортного хаба
Весь трабл начинается с условия if нужно оптимизировать это условие. Я только начал изучение python не много еще не разбираюсь
def transport_hub(schedule, days):
schedule_array = [list(map(int, i.split())) for i in schedule]
max_day_load = []
hub = 0
for i in range(days):
day_load = [v for [x, v] in schedule_array if (i + 1) % x == 0]
day_load.append(hub)
if sum(day_load) >= 0:
hub = sum(day_load)
else:
hub = 0
max_day_load.append(sum([i for i in day_load if i > 0]))
return max(max_day_load)
print(transport_hub(["2 -2", "3 3"], 7))
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Там вообще надо весь код переписывать, наверное, но я пока просто превратил ваш код в рабочий, поменяв содержимое цикла:
for i in range(days):
day_load = [v for [x, v] in schedule_array if (i + 1) % x == 0]
max_day_load.append((hub + sum(x for x in day_load if x > 0), i))
hub = max(sum(day_load) + hub, 0)
return max(max_day_load)[1] + 1
Вывод:
6
Суть в том, что в max_day_load нужно добавлять только положительный баланс за день, а потом уже менять содержимое hub на общий баланс за день. Остальное в моём коде - просто оптимизации вашего кода с помощью функции max.