题解 | #连续子数组的最大和#
连续子数组的最大和
http://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484
超过百分之一的java代码,真的是太菜了
public class Solution {
public int FindGreatestSumOfSubArray(int[] array) {
if(array.length==0){
return 0;
}
if(array.length==1){
return array[0];
}
int max = array[0];
int abs = 0;
int count = 0;
//找到数组里的正数
for(int i =0;i < array.length;i++){
if(array[i]>0){
abs = i;
break;
}
count++;
}
//数组里没有正数,返回最小值
if(count == array.length){
for(int i = 1;i < array.length;i++){
max = max > array[i]?max:array[i];
}
return max;
}
//找到正数向后相加
int temp = array[abs];
for(int i = abs+1;i<array.length;i++){
if(temp+array[i]>0){
temp+=array[i];
max=max>temp?max:temp;
}else{
temp = 0;
}
}
return max=max>temp?max:temp;
}
}