en.javascript.info/1-js/4-data-structures/6-array/10-maximal-subarray/task.md
Ilya Kantor 87bf53d076 update
2014-11-16 01:40:20 +03:00

28 lines
No EOL
1.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Подмассив наибольшей суммы
[importance 2]
На входе массив чисел, например: `arr = [1, -2, 3, 4, -9, 6]`.
Задача -- найти непрерывный подмассив `arr`, сумма элементов которого максимальна.
Ваша функция должна возвращать только эту сумму.
Например:
```js
getMaxSubSum([-1, *!*2, 3*/!*, -9]) = 5 (сумма выделенных)
getMaxSubSum([*!*2, -1, 2, 3*/!*, -9]) = 6
getMaxSubSum([-1, 2, 3, -9, *!*11*/!*]) = 11
getMaxSubSum([-2, -1, *!*1, 2*/!*]) = 3
getMaxSubSum([*!*100*/!*, -9, 2, -3, 5]) = 100
getMaxSubSum([*!*1, 2, 3*/!*]) = 6 (неотрицательные - берем всех)
```
Если все элементы отрицательные, то не берём ни одного элемента и считаем сумму равной нулю:
```js
getMaxSubSum([-1, -2, -3]) = 0
```
Постарайтесь придумать решение, которое работает за O(n<sup>2</sup>), а лучше за O(n) операций.