摘要:
问题定义: 求数组A中一个连续的和最大的子数组。比如数组[4,5,-6,7,-3,1]的最大子数组是[4,5,-6,7],和为10。解法一:分治法 可以把问题转化成求两个子数组的最大子数组问题。令mid为数组A[low, high]的中间位置,则A[low, high]的最大子数组所处的位置存在如下三种情况:1、完全位于A[low, mid]之中2、完全位于A[mid+1, high]之中3、横跨中点mid对于1、2两种情况相当于将问题的规模缩小为原来的一半,因此只需要递归求解即可。第3种情况需要单独考虑。首先可知横跨中点mid的子数组中一定包含元素A[mid],则我们可以将第3种情况一分.. 阅读全文