Решение
Алгоритм решения задачи:
- Инициализируйте 2 целочисленные переменные. Установите обе из них равными первому значению в массиве.
- currentSubarray будет вести подсчет текущего подмассива, на котором мы фокусируемся.
- maxSubarray будет нашим окончательным возвращаемым значением. Нужно обновлять его всякий раз, когда мы находим больший подмассив.
- Перебираем массив, начиная со 2-го элемента (поскольку мы использовали первый элемент для инициализации наших переменных). Для каждого числа добавляем его в текущий подмассив, который мы строим. Если currentSubarray становится отрицательным, мы знаем, что его не стоит хранить, поэтому выбросьте его. Не забывайте обновлять maxSubarray каждый раз, когда мы находим новый максимум.
- Вернуть maxSubarray.
Умный способ обновить currentSubarray — использовать currentSubarray = max(num, currentSubarray + num). Если значение currentSubarray отрицательное, тогда num > currentSubarray + num.
