def maxsub(a,N): max_so_far = a[0] curr_max = a[0] for i in range(1,N): curr_max = max(a[i], curr_max + a[i]) max_so_far = max(max_so_far,curr_max) return max_so_far N = int(input()) arr = [int(input()) for _ in range(N)] if all(x > 0 for x in arr) == True: print(sum(arr) — max(arr)) else: print(maxsub(arr,N))
Этот код помогает найти максимальную сумму любого подмассива, но мне нужно найти, какая максимальная сумма подмассива ›будет, если мне придется удалить в нем самый большой элемент.
Например,
Если у нас есть 7 элементов в массиве как [0, -11,5,5, -10,0,50], максимальная сумма подмассива, если нам нужно удалить его самый большой элемент ‘будет 5
Для 5 элементов [-2,10, -2,10,6] ответ будет 14 < / strong>
Что мне здесь делать?
Похоже на проблему конкуренции — не могли бы вы дать ссылку на источник? Также насколько быстро приемлемо? — person keancodeup schedule 09.05.2021
Источник: