Files
roma-dxunvrs c90a404c40
deploy / Pull and Restart (push) Successful in 18s
Refactor
2026-09-19 19:20:43 +03:00

22 lines
960 B
Markdown

Leetcode #53 | #Medium | [[1-D Динамика]]
## Идея
Храним текущую сумму - изначально первый элемент. Идем по массиву, начиная с 1-го индекса. Считаем текущую сумму как максимум из `nums[i]` и `nums[i]+curSum`. Если текущая сумма была отрицательной, а встретилось число, большее, то просто начинаем отсчет с него. Обновляем максимальную сумму.
## Big-O
- Время ```O(N)```
- Память ```O(1)```
## Код
```Java
class Solution {
public int maxSubArray(int[] nums) {
int curSum = nums[0];
int maxSum = curSum;
for (int i = 1; i < nums.length; i++) {
curSum = Math.max(nums[i], nums[i]+curSum);
maxSum = Math.max(maxSum, curSum);
}
return maxSum;
}
}
```