题解
简单的动态规划吧算是
还是比较简单的题目
首先计算sum的值,如果和的值大于0那么这一段的和就对后面那个数有用,否则,就重新从下一个数开始,然后取最大值。
代码
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int n = nums.size();
int ans = nums[0],sum = 0;
for(int i = 0; i < n; i++){
if(sum > 0){
sum = sum + nums[i];
}else{
sum = nums[i];
}
ans = max(ans , sum);
}
return ans;
}
};