思路展示 当前连续和为负数的时候立刻放弃(因为负数加上下一个元素后,连续和智慧越来越小),从下一个元素重新计算连续和 示例代码 登录后复制 class Solution { public: int maxSubArray(vector<int>& nums) { int len=nums.size(),result=INT_MIN,count=0; for(int i=0;i<len;i++){ count+=nums[i]; //取区间累积的最大值(相当于不断确定最大子序列终止的位置) if(count>result){ result=count; } //相当于重置最大子序列的其实位置,因为遇到负数一定是拉低总和 if(count<0){ count=0; } } return result; } }; 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18. 效果展示 原创作者: u_15305087 转载于: https://blog.51cto.com/u_15305087/11651312