У меня есть некоторые данные, например журнал изменений в количестве волшебных бобов, находящихся в моем распоряжении. Чтобы упростить вопрос, предположим, что уже отсортированы по дате (от старых к новым) и могут быть представлены в этом списке:Что такое элегантный способ нахождения максимального значения, создаваемого текущей суммой?
a = [1,2,3,-4,5,-6]
уведомление каждое число означает изменение в ряде волшебных бобов, а не текущий общий , Итак, я начинаю с 1 боба, потом получаю еще 2, потом получаю еще 3, затем я отдаю кому-то 4 бобы и т. Д.
То, что я хочу найти, - это максимальное количество бобов, которые я когда-либо имел в моем распоряжении в один момент времени. То есть, что такое бобы, которые у меня когда-либо были в карманах.
Чтобы сделать это, я написал этот код:
a = [1,2,3,-4,5,-6]
def find_max_seats(some_list):
running_list = []
running_sum = 0
for i in some_list:
running_sum += i
running_list.append(running_sum)
return max(running_list)
print find_max_seats(a)
Он работает (ответ 7), но имеет быть более элегантным и вещий способ сделать это.
Благодарим за помощь!
Просто используйте 'макс()' с любым из решений там. –
@ 200OK Я не понимаю ... Я уже использую max в своем решении – Optimesh
Решения там используют 'list()' или понимание списка для создания списка с суммарными суммами, так как вам нужен только самый большой элемент не для всех их так просто называть 'max()' there: 'max (accumu (a))'. Это предотвратит создание ненужного списка. –