В JavaScript существует несколько методов нахождения максимальной суммы массива. Вот несколько часто используемых алгоритмов:
-
Метод грубой силы:
- Этот метод предполагает проверку всех возможных подмассивов и поиск подмассива с максимальной суммой. Его временная сложность равна O(n^2).
-
Алгоритм Кадане:
- Алгоритм Кадане — это эффективный алгоритм, который сканирует массив и отслеживает подмассив с максимальной суммой, обнаруженный на данный момент. Его временная сложность равна O(n).
-
Динамическое программирование:
- Используя динамическое программирование, вы можете решить эту проблему, разбив ее на более мелкие подзадачи и выстроив решение. Этот алгоритм также имеет временную сложность O(n).
Вот пример реализации алгоритма Кадане на JavaScript:
function maxSubarraySum(arr) {
let maxSum = arr[0];
let currentSum = arr[0];
for (let i = 1; i < arr.length; i++) {
currentSum = Math.max(arr[i], currentSum + arr[i]);
maxSum = Math.max(maxSum, currentSum);
}
return maxSum;
}
const array = [1, -3, 2, 1, -1];
const maxSum = maxSubarraySum(array);
console.log(maxSum); // Output: 3