void maxSubArray(int[] array){
if(array==null || array.length == 0)
return;
int max = 0,sum = 0,b = -1,e = -1, bt = -1;
int len = array.length;
for(int i=0;i<len;i++){
sum += array[i];
if(sum > max) {
max = sum;
b = bt;
e = i;
}
if(sum < 0){
sum = 0;
bt = i;
}
}
if(b>=e){
max = array[0];
e = 0;
b = -1;
for(int i=1;i<len;i++){
if(max<array[i]){
max = array[i];
b = i-1;
e = i;
}
}
}
for(int i=b+1;i<=e;i++){
System.out.println(array[i]);
}
System.out.println(max);
}
public static void main(String[]args){
MaxSubArray maxSubArray = new MaxSubArray();
maxSubArray.maxSubArray(new int[]{-2,-4,-5,-6,-4,-10,-1});
}
Code interview: 连续数组最大和
猜你喜欢
转载自blog.csdn.net/zhumingyuan111/article/details/80192729
今日推荐
周排行