public class Solution {
public int FindGreatestSumOfSubArray(int[] array) {
if(array.length==0||array==null)
return 0;
int max=0;
int curNum=0;
for(int i=0;i<array.length;i++){
if(curNum<=0){//如过当前连续n项的和小于等于0,则没必要与后面的元素相加
curNum=array[i]; //currentSum重新赋值
}else{
curNum+=array[i];//如果currentSum的值大于0,则继续与后面的元素相加,
}
if(curNum>max){ //每次改变currentSum的值都有与max进行比较
max=curNum; //如果currentSum的值大于max,则将currentSum的值赋值给max
}
}
if(max==0){
for(int i=0;i<array.length;i++){
for(int j=0;j<array.length-1;j++){
if(array[j]<array[j+1]){
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
if(array[0]<0)
return array[0];
}else{
return max;
}
return max;
}
}
连续子数组的最大和 java
最新推荐文章于 2020-03-19 11:53:28 发布