class Solution {
public int maxSubArray(int[] nums) {
int maxnum=nums[0];
int sum=0;
for(int num:nums){
if(sum > 0){ //若当前子数组之和大于0,则加上当前num
sum += num;
}
/*若小于等于0 则直接将当前num赋值给sum即可 因为是找一个连续数组的最大和连续数组 如若出现前面的sum<0 显然不符题意
就题意来看 具有最大和的连续子数组的开头一定是正数
*/
else
{
sum = num;
}
maxnum = Math.max(maxnum,sum); //每次选择出maxnum和sum之间最大数并保存
}
return maxnum;
}
}