给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
先对数组进行遍历,令最大子序和为sum。
若sum>0,则sum对结果增大有作用,此时让sum=sum+1;
若sum<=0,则sum对结果增大无作用
class Solution { public int maxSubArray(int[] nums) { int res=nums[0]; int sum=0; for(int i:nums){ //对数组进行一次遍历 if(sum>0) sum+=i; else sum=i; res=Math.max(res,sum); //可以对 1.加上一个不足以让sum小于0,但比上一次结果小的情况 2.负数加上正数,结果比原来大但和仍然小于0的情况 进行分析 } return res; } }