输入: [-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.
在进行下一次循环
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;
}
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有