这是个锤子的简单题,
一开始我用暴力解法写了一遍,双循环,但是有一个用例会超时,所以只能用动态规划来做:
(答案当中还给了一个贪心,还没具体看)
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int pre=0 , ans=nums[0];
for(const auto &x : nums){
pre = max( pre+x ,x ); //如果前面的累加还不如自己本身大,就舍弃掉前面的。
ans = max(pre , ans);
}
return ans;
}
};