Leetcode53
1.问题描述
2.解决方案
利用贪心说实话稍微有一点不太好想!就是如果一个序列和已经是负的了,那不管下一个数是正是负这个负的序列和已经说实话没什么用了,留着也是累赘直接干掉最好!
关键在于:不能让“连续和”为负数的时候加上下一个元素,而不是不让“连续和”加上一个负数,理解这个太重要了!
class Solution2 {
public:
int maxSubArray(vector<int>& nums) {
int result=INT16_MIN;
int sum=0;
for(int i=0;i<nums.size();i++){
sum+=nums[i];
if(sum>result) result=sum;
if(sum<=0) sum=0;
}
return result;
}
};