public class Solution {
/*
因为数组有正有负最大和一定大于0,所以当出现出现当前最大和小于0时,那么重新开始
用两个cursum 和maxsum来保存当前最大值和最终最大值
当输入的数组是全负数时,那么最大和一定是数组中最大的数。
*/
public int FindGreatestSumOfSubArray(int[] array) {
if(array.length==0||array==null) return 0;
int curSum=0;
int maxSum=0x80000000;//因为输入的可能有负数,所以应该将最终的最大数初始值设置为int范围内的最小数0x800000000
for (int i=0;i<array.length;i++){
if(curSum<=0){
curSum=array[i];
}else{
curSum+=array[i];
}
if(curSum>maxSum){//每加一个值也同时更新最终最大值
maxSum=curSum;
}
}
return maxSum;
}
}
剑指42_连续子数组中的最大和
最新推荐文章于 2022-03-01 19:34:13 发布