Решение

Решение


Алгоритм решения задачи:

  1. Инициализируйте 2 целочисленные переменные. Установите обе из них равными первому значению в массиве.
  2. currentSubarray будет вести подсчет текущего подмассива, на котором мы фокусируемся.
  3. maxSubarray будет нашим окончательным возвращаемым значением. Нужно обновлять его всякий раз, когда мы находим больший подмассив.
  4. Перебираем массив, начиная со 2-го элемента (поскольку мы использовали первый элемент для инициализации наших переменных). Для каждого числа добавляем его в текущий подмассив, который мы строим. Если currentSubarray становится отрицательным, мы знаем, что его не стоит хранить, поэтому выбросьте его. Не забывайте обновлять maxSubarray каждый раз, когда мы находим новый максимум.
  5. Вернуть maxSubarray.

Умный способ обновить currentSubarray — использовать currentSubarray = max(num, currentSubarray + num). Если значение currentSubarray отрицательное, тогда num > currentSubarray + num.



Report Page