利用二分法求数组最大子序列-java数据结构
数组的最大子序列可能在三处出现:
- 整个出现在数组的左半部;
- 整个出现在数组的右半部;
- 跨越数组的中从而位于左右两个部分之间。
利用分治算法的思想可以很轻松地解决此类问题。
/**
* 利用二分法计算数组的最大子序列
* @author yjl
* @create 2021-04-15 22:57
*/
public class DivideAndConquer {
public static int maxSumRec(int[] arr,int left,int right){
//基准情况
if(left == right){
return Math.max(arr[left], 0);
//子序列允许是负数的情况:
//return arr[left];
}
//递归将数组一