就,每次都计算求和的值,如果求和的sum比这个位置的值小,那么最大和就是这个位置的值,否则的话和就是之前的求和加上这个位置的值,这个的话也算是比较简单的程序了,依旧没什么好说的
class Solution { public: int maxSubArray(vector<int>& nums) { int sum=nums[0],max=sum; for(int i=1;i<nums.size();i++){ if(sum+nums[i]<nums[i]){ sum=nums[i]; }else{ sum+=nums[i]; } if(max<sum) max=sum; } return max; } };