连续子数组的最大和
{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)
如果某一个数x前面的和sum为负数,则sum再加上x肯定比x小,所以应该舍弃前面的和,从x开始往后加
如果前面的和为正数,则x+sum大于x,判断x+sum时候大于之前记录的max
public static int maxsum(int arr[]){ //6,-3,-2,7,-15,1,2,2 int sum = arr[0]; //最大和 int current = arr[0]; //之前累计的和 for(int i=1;i<arr.length;i++){ if(current<=0){ current = arr[i]; }else{ current += arr[i]; }
if(current>sum)
sum = current; } return sum; }
posted on 2017-08-24 16:12 zhangxiaoyu 阅读(113) 评论(0) 收藏 举报
浙公网安备 33010602011771号