1. 程式人生 > >演算法-分治演算法

演算法-分治演算法

leetcode-53- 最大子序和(maximum subarray)-java
分治法:思路:假設陣列下標有效範圍是l到r,將陣列分為左半部分下標為(l,mid-1)和右半部分下標為(mid+1,r)以及中間元素下標為mid,接下來遞迴求出左半部分的最大子序和:left=helper(nums,l,mid-1); 右半部分最大子序和right=helper(nums,mid+1,r);接下來再將左半部分右邊界,右半部分左邊界以及中間元素nums[mid]整合,用了兩個迴圈,先整合左半部分右邊界和中間值,再將整合結果與右半部分左邊界整合得到整合以後的最大子序和max_num,最後返回max_num,left,right的最大值即是要求的最大子序和。