我是靠谱客的博主 老迟到小蝴蝶,这篇文章主要介绍给定一个数组,找出这个数组最大连续子数组的和,现在分享给大家,希望可以做个参考。

将这个连续子数组分为两部分,一个是前缀,一个是后一个元素,要使这个连续子数组最大,那么它的前缀肯定不能为负,不然这个前缀对即将加上的值就无意义,用一个max记录最大值,每次当前缀加上后一个元素的时候判断和是否大于max,大于则更新max,再判断和是否小于0,小于0则将前缀更新为0,继续加下一个元素,依次类推,直到数组末尾,max即为最大子数组和。代码如下:

 

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Solution { public int FindGreatestSumOfSubArray(int[] array) { if(array.length==0){ return 0; } int max = array[0]; int current = array[0]<0?0:array[0]; for(int i=1;i<array.length;i++){ current += array[i]; if(current>max){ max = current; }else if(current<0){ current = 0; } } return max; } }

 

 

 

 

 

最后

以上就是老迟到小蝴蝶最近收集整理的关于给定一个数组,找出这个数组最大连续子数组的和的全部内容,更多相关给定一个数组,找出这个数组最大连续子数组内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(73)

评论列表共有 0 条评论

立即
投稿
返回
顶部