Write a method maxSubarraySum
that, given a non-rectangular two-dimensional int
array, returns the sum of the
subarray that sums to the largest value.
So given the following array, with each subarray on a separate line:
1, 2, 4
4, 1, -1
6, 8, -10, -9
-1
You would return 7.
assert
that the passed array is not null
.
However, if the passed array is not null
it will contain no empty subarrays.
One hint for this problem is that you may need both an int
variable to store the max and a boolean
variable
to record whether the maximum value has been initialized.
Once you have summed each subarray, check whether either your boolean
value is false
or the sum is larger than
the largest you've seen so far.
After you check the sum of the first subarray, set your boolean
value to true
.
Another approach is to use the counter that you use to proceed through each subarray to determine whether you have
initialized the max value.
Stuck? You may find these lessons helpful: