The maximum subarray problem is the problem of finding the maximum sum of a contiguous subsequence in an array or list of numbers. Each number could be positive, negative, or zero.
Formally, the task is to find indices
Some properties of this problem:
- If the array contains all non-negative numbers, then the problem is trivial; a maximum subarray is the entire array.
- If the array contains all non-positive numbers, then a solution is any subarray of size 1 containing the maximal value of the array (or the empty subarray, if it is permited).
- Several different sub-arrays may have the same maximum sum.
- Genomic sequence analysis employs maximum-subarray algorithms to identify important biological segments of protein sequences. These problems include conserved segments, GC-rich regions, tandem repeats, low-compelxity filter, DNA binding domains, and regions of high charge.
- In computer vision, maximum-subarray algorithms are used on bitmap images to detect the brightest area in an image.
-
Kadane's algorithm
$(O(n)$