leetcode练习—— 最大子序和 给定一个整数数组 nums 找到一个具有最大和的连续子数组子数组最少包含一个元素返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大为 6。进阶:如果你已经实现复杂度为 O(n) 的解法尝试使用更为精妙的分治法求解。ans存放答案也就是最大的和,初始为nums[0]sum运算过程中保存的最大和class Solution { public int maxSubArray(int[] nums) { int lengthnums.length; int sumnums[0]; //默认第一 int anssum; for(int i1;ilength;i) { if(nums[i]0) { //这一项是非0 if(sum0) //之前都是负数的话最大和从这一点开始 sum0; //sum更新成0 sumnums[i]; if(sumans) //看看是否更新ans的值 anssum; } else { //这一项是负数 if(sumnums[i]0) { //加上去还是负数 if(nums[i]ans) //如果这一项比sum的值大,我们把这一点作为子序列的第一个元素 ansnums[i]; sum0; } else { sumnums[i]; //虽然这一点是负数但是加上去还是正数那么就有可能他后面的数加起来会大//于ans } } } return ans; } }