剑指offer42
public int maxSubArray(int[] nums) {
int res=nums[0];
for(int i=1;i<nums.length;i++){
nums[i]+=nums[i-1]>0?nums[i-1]:0;
res=Math.max(res,nums[i]);
}
return res;
}
剑指offer 85
public int[] FindGreatestSumOfSubArray (int[] array){
int tempSum=array[0];
int tempStart=0;
int tempEnd=1;
int max=array[0];
int start=0;
int end=1;
for(int i=1;i<array.length;i++){
if(tempSum+array[i]<array[i]){
//重新开始
tempSum=array[i];
tempStart=i;
tempEnd=i+1;
}
else{
tempSum+=array[i];
tempEnd++;
}
if(max<=tempSum){
max=tempSum;
start=tempStart;
end=tempEnd;
}
}
return Arrays.copyOfRange(array,start,end);
}