gorithms that solve the same problem but have different running times.
The problem we focus on is one that is reportedly often used as a job interview
question by major software and Internet companies—the maximum subarray
problem. Here, we are given an array of integers and asked to find the subarray
whose elements have the largest sum. See the example of Figure 1.13. That is,
given array A = [a1, a2, ..., an], find indices j and k that maximize the sum
Note that each element of the array could have a positive, negative, or zero value.
Thus, in the special case where all array elements are negative, the solution is an
empty subarray of conventional zero sum.
To define the problem more formally, we conventionally define the special array
element A[0] = 0 and let A[j : k] denote the sequence of elements of A from index
j to index k (0 ≤ j ≤ k ≤ n). The maximum subarray problem consists of finding
the sequence A[j : k] (0 ≤ j ≤ k ≤ n) that maximizes sj,k, the sum of its values.
Such a maximum sum is referred to as the maximum subarray sum of array