53. 最大子数组和(LeetCode)(DP\贪心)
DP
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int res = INT_MIN;
for(int i = 0, last = 0; i < nums.size(); ++i){
last = nums[i] + max(last, 0);
res = max(res, last);
}
return res;
}
};
贪心
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int sum = 0, maxv = nums[0];
for(int i = 0; i < nums.size(); ++i){
sum += nums[i]; maxv = max(maxv, sum);
if(sum < 0) sum = 0;
}
return maxv;
}
};


浙公网安备 33010602011771号