动态规划,题解写的很简洁
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int pre = 0, maxAns = nums[0];
for (const auto &x: nums) {
pre = max(pre + x, x);
maxAns = max(maxAns, pre);
}
return maxAns;
}
};
自己写的就。。
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int res=nums[0];
int sum=0;
for(auto &num:nums){
if(sum>0){
sum+=num;
}
else{
sum=num;
}
res=max(res,sum);
}
return res;
}
};
暴力竟然也能过
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int m=-214740000;
if(nums.size()==1){
return nums[0];
}
else{
for(int i=0;i<nums.size();++i){
m=max(m,nums[i]);
int temp=nums[i];
for(int j=i+1;j<nums.size();++j){
temp=temp+nums[j];
m=max(m,temp);
}
}
return m;
}
}
};