By CaesarChang 合作: root121toor@gmail.com
~关注我 带你看更多精品技术和面试必备
输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
如果 nowSum > 0,则说明nowSum 对结果有增益效果,则 nowSum 保留并加上当前遍历数字 如果 nowSum <= 0,则说明nowSum 对结果无增益效果,需要舍弃,则 nowSum 直接更新为当前遍历数字
比较maxNum和当前和nowSum大小,不断更新maxNum.
在进行下一次循环
代码语言:javascript复制class Solution {
public int maxSubArray(int[] nums) {
int maxNum=nums[0];
int nowSum=0;
for(int i=0;i<nums.length;i ){
if(nowSum>0){
nowSum =nums[i];
}else{
nowSum=nums[i];
}
maxNum=Math.max(maxNum,nowSum);
}
return maxNum;
}
}